2022-08-12
第十一章 处理概括关系
11.1 Pull Up Field(字段上移)
两个子类拥有相同的字段,将字段移至超类
11.2 Pull Up Method(函数上移)
某些函数在各个子类中产生完全相同的结果,将该函数移至超类
11.3 Pull Up Constructor Body(构造函数本体上移)
各个子类中拥有本体几乎一致的构造函数,将相同部分移至超类,在子类构造函数中调用它
class Manager extends Employee...
public Manager (String name, String id, int grade) {
_name = name;
_id = id;
_grade = grade;
}
↓
public Manager (String name, String id, int grade) {
super (name, id);
_grade = grade;
}
11.4 Push Down Method(函数下移)
超类中某个函数只与某个子类有关
11.5 Push Down Field(字段下移)
超类中某个字段只与某个子类有关
11.7 Extract Superclass(提取超类)
两个类有相似特性,为两个类建立超类,将相似特性移至超类
11.9 Collapse Hierarchy(折叠继承体系)
超类和子类没有太大区别,合成一个类
11.11 Replace Inhieritance with Delegation(以委托取代继承)
某个子类只使用超类接口中的一部分,或是根本不需要继承而来的数据。可以在子类中建一个字段用来保存超类,然后调整子类的函数,将继承关系改为委托超类
11.12 Replace Delegation with Inhieritance(以继承取代委托)
在两个类之间使用委托关系,并经常编写许多极简单的委托函数,可以吧委托方式换成继承关系