我们一起来读书吧 关注:153贴子:2,704
  • 0回复贴,共1

重构第12章

只看楼主收藏回复

- 提炼超类(Extract Superclass):
当发现几个类中有相似的特征(字段或方法)时,可以创建一个新的超类,并让这些类成为其子类。这有助于减少代码重复,并提高代码的组织性。
- 折叠继承体系(Collapse Hierarchy):
当一个子类和父类之间没有太多的差别时,可以将子类和父类合并。这样可以简化继承关系,使得体系更加扁平。
- 移除子类(Remove Subclass):
如果一个子类的存在不再提供额外的价值,或者继承带来的复杂性超过了它的好处,可以将子类的功能移动到父类或其他类中,然后删除子类。
- 提炼接口(Extract Interface):
当不同的类使用了相同的方法,但不方便通过继承关系来组织时,可以提炼出一个接口。各个类实现这个接口,这样可以保证不同类之间的可替换性和灵活性。
- 形成模板方法(Form Template Method):
在子类中有类似的操作,但是细节不同,可以将这些操作抽象成一个算法框架(模板方法),放在父类中。子类通过实现算法框架中的抽象部分来实现具体的功能。
- 替换继承为委托(Replace Inheritance with Delegation):
如果子类只使用父类的部分功能,或者继承造成了过于紧密的耦合,可以通过委托替换继承。即在子类中使用父类的实例来实现需要的功能,而不是通过继承。
- 替换委托为继承(Replace Delegation with Inheritance):
如果使用委托导致代码复杂或者效率问题,可以考虑将委托替换为继承。


1楼2024-08-16 15:51回复