代码的坏味道
Duplicated Code ( 重复代码 )
如果你在一个以上的地点看到相同的程序结构,那么设法将它们合而唯一,程序会变得更好
最单纯的Duplicated Code 是同一个类的两个函数含有相同的表达式
另一种常见的情况分就是两个互为兄弟的子类内含相同的表达式
。
Long Method ( 过长函数 )
每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名(而非实现手法)。
如何确定该提炼哪一段代码呢?一个很好的技巧是:寻找注释。他们通常能指出代码用途和实现手法之间的语义距离。如果代码前方有一行注释,就是再提醒你:可以将这段代码换成一个函数,而且可以再注释的基础上给这个函数命名。就算只有一行代码,如果它需要以注释来说明,那也值得将它提炼到独立函数中。
Large Class ( 过大的类 )
Long Parameter List ( 过长参数列 )
通过以对象的成员变量,避免一个函数中参数过长。
Divergent Change ( 发散式变换 )
针对某一外界变化的所有相应修改,都只应该发生在单一类中,而这个新类内的所有内容都应该反应此变化。(适配器模式)