过度耦合的消息链
一个对象请求另一个对象,然后再向后者请求另一个对象,周而复始,对象之间的请求路径过长,就容易导致高耦合消息链的出现,我们可以考虑拆函数或者移动函数。
中间人
类中的函数存在过度委托给其他对象的情况,在委托函数过多时,我们可以考虑减少委托,让调用者直接访问目标类进行操作
狎昵关系
一个类大量使用另一个类的内部字段和方法。而类和类之间应该尽量少的感知彼此(减少耦合)。这样的类更容易维护和复用。我们可以考虑移动字段、函数让他们划清界限或者使用代理、把公共属性提到新类等手段
异曲同工类
如果2个函数做同一件事,却有着不同的签名,我们可以考虑删掉多余的类。
不完美的程序库类
封装好的类库中功能不能满足实际需求,为了解决代码不能更改造成的不便,我们可以考虑引入外加函数或使用引入本地扩展。
纯稚的数据类
它们拥有一些值域(fields),以及用于访问(读写〕这些值域的函数,除此之外一无长物。我们可以考虑封装起来并将相关的数据操作方法移过来(POJO)。
被拒绝的遗赠
子类应该继承超类的函数和数据. 但如果它们不想或不需要继承, 又该怎么办呢?可以考虑改继承为代理。
过多的注释
为了解释某段代码的意义,而编写了过多的注释,这反而从另一方面说明这段代码需要被重构