【发布时间】:2021-03-27 23:23:12
【问题描述】:
我有两个接口Inquiry 和Validatable
而且我还有两个类ErrorReport 和FunctionQuery 实现了Inquiry 和Validatable 两者。
当我有一个使用两个接口操作组合的逻辑时,最好的选择是什么?
我知道我可以使用Inquiry 和Validatable 将它分成两个逻辑,但是逻辑是合并的,所以如果我将它分开,就会产生其他重复。
我尝试如下,但我意识到这种层次结构不合适,因为Validatable 在我的应用程序中不是Inquiry 的概括。
先接近
public interface Inquiry extends Validatable {
...
}
还有这样的课程。
public class ErrorReport implements Inquiry{
...
}
public class FunctionQuery implements Inquiry {
...
}
新方法
所以我创建了一个如下所示的界面。
public interface ValidatableInquiry extends Inquiry,Validatable{
...
}
和类
public class ErrorReport implements ValidatableInquiry {
...
}
public class FunctionQuery implements ValidatableInquiry {
...
}
我认为新方法比第一种方法更好,但我不能放心。 这是正确的方法吗?还有更好的选择吗?
【问题讨论】:
标签: java oop interface multiple-inheritance