第7章 在对象之间搬移特性

Move Method(搬移函数) 你的程序中 有个函数与其所驻类之外的另一个类进行更多交流 调用后者 或被后者调用 在该函数最常引用的类中建立一个有着类似行为的新函数 新旧函数变成一个单纯的委托函数 或是将旧函数完全移除

Move Field(搬移字段) 你的程序中 某个字段被其所驻类之外的另一个类更多地用到 在目标类新建一个字段 修改源字段的所有用户 令它们改用新字段

Extract Class(提炼类) 某个类做了应该由两个类做的事 建立一个新类 将相关的字段和函数从旧类搬移到新类

Inline Class(将类内联化) 某个类没有做太多事情 将这个类的所有特性搬移到另一个类中 然后移除原类

Hide Delegate(隐藏委托关系) 客户通过一个委托类来调用另一个对象 在服务类上建立客户所需的所有函数 用以隐藏委托关系

Remove Middle Man(移除中间人) 某个类做了过多的简单委托动作 让客户直接调用受托类

Introduce Foreign Method(引入外加函数) 你需要为提供服务的类增加一个函数 但你无法修改这个类 在客户类中建立一个函数 并以第一参数形式传入一个服务类实例

Introduce Local Extension(引入本地扩展) 你需要为服务类提供一些额外函数 但你无法修改这个类 建立一个新类 使它包含这些额外函数 让这个扩展品成为源类的子类或包装类