Parallel Inheritance Hierachies其实是Shotgun Surgery的特殊情况。在这种情况下,每当你为某个class增加一个subclass,必须也为另一个class相应增加一个subclass。如果你发现某个继承体系的class名称前缀和另一个继承体系的class名称前缀完全相同,便是闻到了这种味道。
消除这种重复性的一般策略是:让一个继承体系的实体(instances)指涉(参考、引用、refer to)另一个继承体系的实体(instances)。如果再接再厉运用Move Method(142)和Move Field(146),就可以将指涉端(referring class)的继承体系消弭于无形。