我有 4 个实现相同接口(interface)
的类
。类(class)例如
ABC
、XYZ
、LMN
,现在LMN
类的实例可以belongTo
XYZ
的实例意味着也可以是子对象。如果一个对象是子对象,那么它不应该具有作为独立对象可用的所有方法,否则它的功能会略有不同。
处理这种情况的最佳实践是什么?
最佳答案
这可能看起来违反直觉,但您可能需要考虑实现第二个接口(interface) ChildInterface
,它是 Interface
的父级。将您希望子级可用的方法子集放在那里。
public interface ChildInterface{
...
}
public interface Interface extends ChildInterface{
//add methods you don't want Children to have
}
public class XYZ implements Interface{
...
}
然后在您的 Interface
接口(interface)或 XYZ
类中,有一个方法
public ChildInterface getChild();
由于所有类都实现这两个接口(interface),因此编译效果很好,并且保证返回的对象仅限于 ChildInterface
中的方法。
关于java - 代码重构。实现相同接口(interface)的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29141780/