1
Q1:使用“接口继承”和“接口组合”设计OOP代码时,哲学有什么区别? (请注意处理接口部分,因为我知道继承和组合以及为什么组合比继承更受青睐)。 Q2:任何使用情况下的接口继承应该优于组合接口还是组合+接口?接口继承和接口之间的区别
P.S.焦点应该是继承和组合中的接口角色,并且任何处理相关设计的附加提示都将非常感谢。
Q1:使用“接口继承”和“接口组合”设计OOP代码时,哲学有什么区别? (请注意处理接口部分,因为我知道继承和组合以及为什么组合比继承更受青睐)。 Q2:任何使用情况下的接口继承应该优于组合接口还是组合+接口?接口继承和接口之间的区别
P.S.焦点应该是继承和组合中的接口角色,并且任何处理相关设计的附加提示都将非常感谢。
你可以说接口继承是声明,因为它仅规定的接口应该是什么样子:
public IDerivedInterface : ISomeOtherInterface { /*...*/ }
这些接口仍然没有行为,只有形状。
另一方面,具有接口的组合是一种组装实现方式。
public Foo DoFoo(Bar bar)
{
var qux = this.baz.Corge(bar); // baz is IBaz, an interface
var garply = this.grault.Waldo(qux); // grault is IGrault, another interface
return garply.ToFoo();
}
此DoFoo
方法构成IBaz
和IGrault
。这些接口中的一个或两个接口可以定义为独立接口或不带接口 - DoFoo
方法不在意。
正如上面的回答解释,接口继承和组成是两个独立的关注,所以它是没有意义的偏向了另一种。他们可以共存,但他们不需要。
您缺少像java或''C#''这样的语言标记......接口*可以被接口继承(在建议的语言中) –