一个方法在其他类中调用的频率比所属的类还高
方法应该属于调用它最多的那个类
1,方法使用的数据或者变量的个数最多来自哪个类,那个类就是方法该待的地方,这就是所谓的类的内聚性;
2,减少类的依赖
一个字段在另一个类中使用的频率比当前所属的类还高
移动字段到新的类中
说法1:一个类有太多的职责;
说法2:一个类内部的成员还可以分组
把能分组的成员移动到新建的类中
类开始时往往是清晰的,职责单一的,但一天天变大,最终需要重组
单一职责,易于更改
带来复杂性,过犹不及,需要权衡
一个类做的事情很少,缺乏存在的必要
合并代码到其他类中
类被重构的几乎没啥了,干脆彻底点吧
客户通过A 拿到B,然后调用B 的方法
直接在A中添加一个方法调用B 的目标方法,这样客户直接调用A新添加的方法即可,B不再可见
客户仅仅需要B 的一个方法,没必要为这一个调用增加依赖,这样A与B的关系也对客户隐藏,利于关系的变更。
显然,如果客户需要B 的若干个方法,这个做法就不合适了-因为你需要在A中一一添加委托方法,增加了复杂性。
一个类有大量的方法仅仅是委托调用给另外一个类的方法
移除这些委托方法,让客户直接调用目标类的方法
B添加一个方法,就需要A做相应的添加,显然这个很笨
库提供的功能有限,不能满足更多的需求,但库又是只读的
在客户端添加新的方法,站在库的肩膀上提供更多的功能,然后这个新方法被很多客户使用
把这种对库的扩展集中到一个地方,而不是所有的客户端重复实现。
和上个问题一样,库功能不足,也不能添加
创建一个新的类继承或包装库类,以添加新的功能。先选择继承,如不能(如 final),则包装(wrapper)
原文:http://www.cnblogs.com/yoogo/p/5252561.html