Parallel Inheritance Hierachies其實(shí)是Shotgun Surgery的特殊情況。在這種情況下,每當(dāng)你為某個(gè)class增加一個(gè)subclass,必須也為另一個(gè)class相應(yīng)增加一個(gè)subclass。如果你發(fā)現(xiàn)某個(gè)繼承體系的class名稱(chēng)前綴和另一個(gè)繼承體系的class名稱(chēng)前綴完全相同,便是聞到了這種味道。
消除這種重復(fù)性的一般策略是:讓一個(gè)繼承體系的實(shí)體(instances)指涉(參考、引用、refer to)另一個(gè)繼承體系的實(shí)體(instances)。如果再接再厲運(yùn)用Move Method(142)和Move Field(146),就可以將指涉端(referring class)的繼承體系消弭于無(wú)形。