其他分享
首页 > 其他分享> > 设计模式简记-设计原则之KISS原则

设计模式简记-设计原则之KISS原则

作者:互联网

3.6 KISS原则

3.6.1 如何理解KISS原则?

3.6.2 代码行数越少就越“简单”吗?

3.6.3 代码逻辑复杂就违背 KISS 原则吗?

// KMP algorithm: a, b分别是主串和模式串;n, m分别是主串和模式串的长度。
public static int kmp(char[] a, int n, char[] b, int m) {
  int[] next = getNexts(b, m);
  int j = 0;
  for (int i = 0; i < n; ++i) {
    while (j > 0 && a[i] != b[j]) { // 一直找到a[i]和b[j]
      j = next[j - 1] + 1;
    }
    if (a[i] == b[j]) {
      ++j;
    }
    if (j == m) { // 找到匹配模式串的了
      return i - m + 1;
    }
  }
  return -1;
}

// b表示模式串,m表示模式串的长度
private static int[] getNexts(char[] b, int m) {
  int[] next = new int[m];
  next[0] = -1;
  int k = -1;
  for (int i = 1; i < m; ++i) {
    while (k != -1 && b[k + 1] != b[i]) {
      k = next[k];
    }
    if (b[k + 1] == b[i]) {
      ++k;
    }
    next[i] = k;
  }
  return next;
}

以上为字符串匹配算法KMP算法实现代码,当字符串匹配是某个产品的核心功能,或这部分功能为性能瓶颈的时候,就应该选择高性能的复杂的算法。

3.6.4 如何写出满足 KISS 原则的代码?

3.6.5 YAGNI 跟 KISS 说的是一回事吗?

标签:return,int,代码,ipUnitIntValue,简记,KISS,false,设计模式
来源: https://www.cnblogs.com/wod-Y/p/12762840.html