父类与其子类之间的关系称为子类依赖关系或实现依赖关系。与其他类型的依赖一样,实现依赖在两个类之间产生某种耦合。请记住,在体系结构中的类之间,耦合必须最小化。
如书“设计模式”所述,减少这种耦合的唯一方法是使用以下原则:
编程到一个接口,而不是一个实现。
然后,如果您必须使用继承,最好的方法是使用抽象类作为父类,并使用子类来覆盖抽象方法。
使用具体类之间的继承也称为白盒代码重用。
父类通常至少定义其子类物理表示的一部分。因为继承将子类暴露给其父类实现的细节,所以经常说“继承破坏了封装”。
然后,使用黑箱代码重用,而不是a.k.a。对象组合,它不会破坏封装和最小化子类耦合。