0

我有一个抽象的父类 P,以及两个具体的子类 C1 和 C2。C1 和 C2 从 P 延伸。

与此同时,我有三个接口,iP、iC1 和 iC2。iC1 和 iC2 从 iP 扩展而来。

显然每个子类都应该实现它各自的接口,但是抽象父类也应该实现它的接口吗?

鉴于我将只实例化具体类,并且这些类绑定到 iP(凭借接口继承层次结构),我不确定我是否真的需要 P 来实现 iP?

另一种选择是我在接口端废弃继承层次结构......

4

2 回答 2

2

接口的精神是允许解耦,换句话说,将“什么”与“如何”分开。正如您在问题中所说的那样,对每个类进行 hava 和 interface 并不是一个非常好的做法,因为它没有任何意义。

您可以在 iP 中拥有您的类将要实现的所有方法的签名,以及部分实现要在您的子类中重用的公共方法的抽象类 P,以及您计划稍后编写的方法的签名在你的孩子班上。

这样,C1 和 C2 扩展您的抽象类 P 就足够了,因为您被迫实现接口和抽象类中声明的所有方法。

于 2012-10-18T05:03:41.417 回答
0

在不了解商业模式的情况下很难回答。但是如果你有一个抽象类,我最好的猜测是你不需要 C1 和 C2 的接口,只需要一个 P 实现的接口并声明它是抽象方法。然后子类扩展 P。

于 2012-10-18T05:07:12.983 回答