【发布时间】:2015-03-21 19:48:47
【问题描述】:
我对面向对象编程技术相当陌生,据我所知,耦合是创建可维护、可重用代码的最大障碍。
当我们让几个子类继承一个基类时,子类不就依赖于基类了吗?如果我必须在以后删除基类怎么办。这不会破坏子类中的代码吗?
【问题讨论】:
-
标准子类型 OOP 依赖于遵循 [the general idea of] LSP。所以是的,改变父母(这样孩子不能坚持之前声明的合同)会破坏孩子班级。然而,这是一个奇怪的(但我不能说它是不正确的)“耦合”的用法。也许这只是意味着耦合是在实现子类型关系中假定/暗示的..
-
它肯定会破坏子类中的代码。避免这种情况的一种方法是使用接口而不是使用超类。但是你为什么要删除这么重要的超类呢?
-
@JobinJose FWIW,我很少使用继承(但使用接口和 DI 很多),除了树状库(例如 UI 控件、例如)发现它是一个过度使用的结构。我什至会争辩说,在 Java 中,它经常被用作对重用代码的渴望而没有其他优点的绷带。 (我不能说 C++ 的用法,但它是一种不同的语言。)
-
@JobinJose 如果继承的函数不那么重要,在子类中再次创建这些函数不是更好吗?
-
@JobinJose 我不同意“继承似乎对创建一个好的设计很重要”你是说不使用继承会导致一个糟糕的设计?您如何看待 C,它没有面向对象,但可以说是编程的通用语言......