【发布时间】:2015-12-30 12:48:53
【问题描述】:
我发现了这个问题:Two Interface with Same Method Name - Implementation of Methods
所以如果一个类实现了两个接口,就有问题了:
假设接口
Foo指定Foo方法doStuffX(),接口Bar指定doStuffY()。有人实现了让一个类FooBar实现了booth接口。后来,我们意识到
Foo需要访问doStuffY实现,但在 Foo 的上下文中使用稍微不同的规范。现在,当
FooBar传递给任何接受Foo并依赖于doStuffY()的方法时,可能会中断。
所以,我的结论是不应该实现多个接口。那是对的吗?除了内部类之外,是否还有其他技术可用于将上下文名称添加到接口方法。我想通过 Foo 和 Bar 对它们的引用。还有更多方法吗?
【问题讨论】:
-
“除了内部类还有其他技术吗...” 很有可能。但是你必须选择一种特定的语言,而不是问一个“语言不可知论”的问题。此外,当然,如果实现多个接口对您来说确实是一个普遍的坏主意,那么您为什么认为语言会允许您这样做?
-
语言不仅允许实现多个接口,它们的标准库也充满了这样做的类。
-
你的结论是完全错误的。 “可能会发生错误,因此我们不应该编程”。
标签: oop language-agnostic