代码重构。实现相同接口的类

时间:2015-03-19 10:12:25

标签: java oop design-patterns

我有4 Classes实现相同的Interface。类是例如

ABCXYZLMN,现在类LMN的实例可能belongTo XYZ的实例也可以是儿童对象。如果一个对象是一个子对象,那么它不应该将所有方法都作为独立对象提供,或者它的功能会略有不同。

通常最好的Pratice来处理这种情况。

1 个答案:

答案 0 :(得分:0)

这可能看似违反直觉,但您可能想要考虑实施第二个接口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中的方法。