一 Move Method (搬移函数)
如果一个类有太多的行为,或者说如果一个类与另外一个类有太多合作而形成高度耦合,这个时候就应该搬移函数。通过搬移函数,可以使得系统中的类更加简单,最终也将更干净利落实现系统交付的任务。
二 Move Field (搬移字段)
在程序中,如果某个字段被其所驻类之外的另一个类更多地用到。这个时候需要在目标类新建一个字段,修改源字段的所有用户,令它们改用新字段。
三 Extract Class (提炼类)
如果某个类做了应该由两个类做的事情,这个时候就应该建立一个新类,将相关的字段和函数从旧类搬移到新类。
四 Inline Class (将类内联化)
如果某个类没有做太多事情,可以将这个类的所有特性搬移到另一个类中,然后移除原类。
五 Hide Delegate(隐藏 "委托关系")
客户通过一个委托类来调用另一个对象,在服务类上建立客户所需的含有函数,用以隐藏委托关系。
六 Remove Middle Man (移除中间人)
某个类做了过多的简单委托动作,让客户直接调用受托类。
七 Introduce Foreign Method (引入外加函数)
你需要为提供服务的类增加一个函数,但你无法修改这个类。在客户类中建立一个函数,并以第一参数形式传入一个服务类实例。
八 Introduce Local Extension (引入本地扩展)
如果需要为服务类提供一些额外函数,但是无法修改这个类。这个时候可以新建立一个类,使它包含这些额外函数,让这个扩展品成为源类的子类或包装类。