我有4个Classes
实现相同的Interface
。类是例如ABC
,XYZ
,LMN
,现在类LMN
的实例可能belongTo
XYZ
的实例也可以是子对象。而且,如果对象是子对象,则它不应具有所有可用的作为独立对象的方法,否则其功能将有所不同。
通常,处理这种情况的最佳实践是什么。
最佳答案
似乎反直观,但您可能要考虑实现作为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
界面或XYZ
类中,有一个方法public ChildInterface getChild();
由于您所有的类都实现了这两个接口,因此可以很好地进行编译,并且可以确保返回的对象仅限于
ChildInterface
中的方法。