处理归纳关系(继承)相关重构手法ide
1.pull up field(字段上移)(2个子类拥有相同的字段。将该字段移到超类中)函数
2.pull up method(函数上移)(有些函数在各个子类中产生彻底相同的额效果。将函数移到超类)idea
3.pull up constructor body(构造函数本体上移)(你在各个子类中拥有一些构造函数,他们的本体几乎彻底一致。在超类中新建一个构造函数,而且在子类构造函数中调用它)spa
4.push down method(函数下移)(超类中某个函数只和部分子类有关。将这个函数移动相关的那些子类去)orm
5push down field(字段下移)(超类中某个字段只被部分子类用到。将这个字段移到须要他的子类中去)继承
6.extract subclass(提炼子类)(类中的某些特性只被某些实例用到。新建一个子类把上面的部分特性移动到子类中)接口
7.extract superclass(提炼超类)(2个类有类似的特性。为这2个类创建一个超类,将系统特性移到超类)it
8.extract interface(提炼接口)(若干客户使用类中的同一子集,或者2个类的接口部分相同。将相同的子类提炼到一个独立接口中)io
9.collapse hidearchy(折叠继承关系)
超类和子类区别并不大(将他们合为一体)form
10.form template method(塑造模板函数)
你有一些子类,其中相应的某些函数以相同的额顺序执行相似的操做,但各个的细节不一样。把相同操做提炼到一个函数而且移动到超类,
11.replace inheritance with delegation(委托取代继承)
某个子类只是用超类冲部分接口,或者根本不须要继承而来的数据(用组合的方式来替代继承,用一个字段来保存超类,调整子类函数,而后去掉继承关系)
12. replace delegation with inheritance(继承取代委托) 你在2个类中使用委托关系,并常常为整个接口 编写许多简单的委托函数(移除这些委托,改成继承关系)