这个问题没有明显的正确答案。决定是否将基类分解为多个抽象基类可能应该根据基类是否在逻辑上代表多个不同的概念来做出决定,而不是根据糟糕的编译器错误消息来做出决定。如果您这样做的唯一原因是编译器错误消息,您可能需要检查并查看是否可以升级编译器,或者是否有其他原因需要这样做。大多数现代编译器应该提供关于此的非常好的、详细的错误。
如果您的设计表明您可能实际上希望拥有多个仅实现基类的一小部分的不同类,则将接口分成几部分可能是一个好主意。如果您希望这样做,那么将接口分开可能会更有利。然而,您会发现这增加了一些复杂性。例如,如果您有一个接口类型的指针,指向实现多个接口的对象,您可能必须进行某种交叉转换才能获得正确的类型,或者您可能必须引入一个新的抽象类来表示继承的东西来自所有不同的接口类型。接口类的多重继承也可能会导致一些名称冲突,尽管如果接口设计正确,这通常不是问题。
简而言之,我强烈建议不要因为编译器错误的原因而这样做,但如果您认为这是一个很好的设计决策,那么无论如何都要这样做。如今,编译器已经足够好了,您很少(但并非永远)需要围绕它们构建您的设计。
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |