读书笔记 ------ 重构 -> 在对象之间搬移特性

来源:互联网 发布:加拿大企业家移民 知乎 编辑:程序博客网 时间:2024/05/16 18:23
1:“决定把责任放在哪儿” 试用 方法: Move Method , Move Filed ,如果需要都试用先试用 Move field 再使用 Move Method 。
2:类责任过多 --->Extract class 方法
3:类责任太少---> inline class
4:一个类使用另一个类 ---> Hide Delegate
5:隐藏委托类导致拥有者的接口经常变化---> Romove Middle Man
6:不能访问类的源码但是想将责任移到不可修改的类中 ---> Introduce Foreign Methon(少量函数) & Introduce Local Extension(较多函数)

1:move method
你的程序中,有个函数与所在类之外的另一个类进行更多交流 ---> 在该函数最常引用的类中建立一个有类似行为的新函数。将就函数变成一个单纯的委托函数或是将就函数完全移除。
作用:降低类之间的耦合,使类更简单。

2:move field
你的程序中,某个字段被其所在类之外的另外一个类更多的用到。
做法:在目标类新建一个字段,修改字段所的所有用户,令他们改用新字段。

3:extract class
建立一个新类,将相关的字段和函数从旧类搬移到新类。

4:inline class
如果某个类没有做太多事情,将这个类的所有特性搬移到另一个类中,然后移除原类。

5:hide delegate
客户通过一个委托关系来调用另一个对象,在服务类上建立客户所需的所有函数,用以隐藏委托关系。

6:remove middle man
某个类做了过多的简单委托动作,让客户直接调用受托类。
“合适的隐藏程度”

7:introce foreign method
你需要为提供的服务的类增加一个函数,但你无法修改这个类。
做法:在客户类中建立一个函数,并以第一个参数形式传入一个服务类实例。

8:introduce local extension
你需要为服务类提供一些额外的函数,但你无法修改这个类。
新建一个类。让他包含这些额外函数。让这个扩展品成为原类的子类或包装类。
0 0
原创粉丝点击