2022-08-12
第十一章 處理概括關(guān)系
11.1 Pull Up Field(字段上移)
兩個子類擁有相同的字段,將字段移至超類
11.2 Pull Up Method(函數(shù)上移)
某些函數(shù)在各個子類中產(chǎn)生完全相同的結(jié)果,將該函數(shù)移至超類
11.3 Pull Up Constructor Body(構(gòu)造函數(shù)本體上移)
各個子類中擁有本體幾乎一致的構(gòu)造函數(shù),將相同部分移至超類,在子類構(gòu)造函數(shù)中調(diào)用它
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(函數(shù)下移)
超類中某個函數(shù)只與某個子類有關(guān)
11.5 Push Down Field(字段下移)
超類中某個字段只與某個子類有關(guān)
11.7 Extract Superclass(提取超類)
兩個類有相似特性,為兩個類建立超類,將相似特性移至超類
11.9 Collapse Hierarchy(折疊繼承體系)
超類和子類沒有太大區(qū)別,合成一個類
11.11 Replace Inhieritance with Delegation(以委托取代繼承)
某個子類只使用超類接口中的一部分,或是根本不需要繼承而來的數(shù)據(jù)。可以在子類中建一個字段用來保存超類,然后調(diào)整子類的函數(shù),將繼承關(guān)系改為委托超類
11.12 Replace Delegation with Inhieritance(以繼承取代委托)
在兩個類之間使用委托關(guān)系,并經(jīng)常編寫許多極簡單的委托函數(shù),可以吧委托方式換成繼承關(guān)系