处理概括关系是重构重点,这些东西开发的时候可能没注意到
Pull Up Field(字段上移)
类似提取超类。
Pull Up Method(函数上移)
类似提取超类。
Pull Up Constructor Body(构造函数本体上移)
Push Down Method(函数下移)
函数某个部分只和子类有关。
Push Down Field(字段下移)
类似上面
Extract Subclass(提炼子类)
Extract Superclass(提炼超类)
Extract Interface(提炼接口)
Collapse Hierarchy(折叠继承体系)
如果子类和父类差别不大。
上面这几个比较依赖开发经验,重要的是能够发现相关问题。能够判断什么情况用哪一种。
Form Template Method(塑造模板函数)
这个属于设计模式的范畴。模板模式
Replace Inheritance with Delegation (以委托取代继承)
类似适配器、代理模式。
Replace Delegation with Inheritance (以继承取代委托)
和上面的步骤相反。
最重要的是如果作出判断,何时用委托,何时不用。