搬移函数(Move Method)
现象:有函数与其所驻类之外的另一个类进行更多交流:调用后者或被后者调用
动机:两个类并无太多合作,但是出现了高度耦合。
做法:在该函数最常引用的类中建立一个有着类似行为的新函数。将旧函数变成一个单纯的委托函数,或是将旧函数完全移除
搬移字段(Move Field)
现象:某个字段被其所驻类之外的另一个类更多地用到
动机:把职责迁移到更适合它的地方去
做法:在目标类新建一个字段,修改源字段的所有用户,令他们改用新字段
提炼类(Extract Class)
现象:某个类做了应该由两个类做的事
动机:拥有过多职责的类,责任定位会变得模糊,从而变得难以理解
做法:建立一个新类,将相关的字段和函数从旧类搬移到新类
将类内联化(Inline Class)
现象:某个类没有做太多事情
动机:若一个类没有承担足够大的责任,就没有独立存在的理由