今天,我们的团队遇到了问题。
有一个类AClass,它实现接口(interface)AInterface。到目前为止,我们需要引入一个新实体(BClass
),它仅使用接口(interface) A 的一部分。
我们想到的第一件事 - 将接口(interface) AInterface 拆分为 2 个组件(组合)
问题在于逻辑AClass->AInterface
- 是一个模型舞会模式MVC。而且我们极不希望将其切割成几个界面。
我们知道Java提供了一种继承机制来扩展类或接口(interface)。
但是有什么办法可以限制实现吗?或者也许以另一种方式存在?
注意:我们不想使用 UnsupportedMethodException。我们的目标 - 干净的 API。
更新:
下一个解决方案 - 不适合我们。
目标:
最佳答案
将受限子集放入一个接口(interface)中,并让更大的接口(interface)对其进行扩展。然后让 A 实现子(较大)接口(interface),B 实现父(较小)接口(interface)。那么A和B都实现了较小的接口(interface),而只有A实现了较大的接口(interface)。尽可能使用较小的界面进行编码。
public interface AInterface {
void add();
void remove();
}
public interface ASubInterface extends AInterface {
void invalidate();
void move();
}
public class AClass implements ASubInterface { /* 4 methods */ }
public class BClass implements AInterface { /* 2 methods */ }
关于Java 接口(interface)\抽象类限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24194188/