重构类关系-Replace Delegation with Inheritance以继承取代委托十二 1.以继承取代委托 1.1.使用场景 你在两个类之间使用委托关系,并经常为整个接口编写许多极简单的…
重构类关系-Replace Inheritance with Delegation以委托取代继承十一 1.以委托取代继承 1.1.使用场景 某个子类只使用超类接口中的一部分,或是根本不需要继承而来的数…
重构类关系-Form Template Method塑造模板函数十 1.塑造模板函数 1.1.使用场景 你有一些子类,其中相应的某些函数以相同顺序执行类似的操作,但各个操作的细节上有所不同。 将这些操…
重构类关系-Collapse Hierarchy折叠继承关系九 1.折叠继承关系 1.1.使用场景 超类和子类之间无太大区别。将它们合为一体 如果你曾经编写过继承体系,就会知道,继承体系很容易变得过分…
重构类关系-Extract Interface提炼接口八 1.提炼接口 1.1.使用场景 若干客户使用类接口中的同一子集,或者两个类的接口有部分相同。将相同的子集提炼到一个独立接口中。 类之间彼此互用…
重构类关系-Extract Superclass提炼超类七 1.提炼超类 1.1.使用场景 “两个类有相似特性。 为这两个类建立一个超类,将相同特性移至超类。 重复代码是系统中最糟糕的东西之一。如果你…
重构类关系-Extract Subclass提炼子类六 1.提炼子类 1.1.使用场景 类中的某些特性只被某些(而非全部)实例用到。新建一个子类,将上面所说的那一部分特性移到子类中 使用Extract…
重构类关系-Push Down Field字段下移五 1.字段下移 1.1.使用场景 超类中的某个字段只被部分(而非全部)子类用到。 将这个字段移到需要它的那些子类去。 1.2.如何做 Push Do…
重构类关系-Push Down Method函数下移四 1.函数下移 1.1.使用场景 超类中的某个函数只与部分(而非全部)子类有关。将这个函数移到相关的那些子类去。 Push Down Method…
重构类关系-Pull Up Constructor Body构造函数本体上移三 1.构造函数本体上移 1.1.使用场景 你在各个子类中拥有一些构造函数,它们的本体几乎完全一致。在超类中新建一个构造函数…