java - 代码重构。实现相同接口(interface)的类

标签 java oop design-patterns

我有 4 个实现相同接口(interface)。类(class)例如

ABCXYZLMN,现在LMN类的实例可以belongToXYZ的实例意味着也可以是子对象。如果一个对象是子对象,那么它不应该具有作为独立对象可用的所有方法,否则它的功能会略有不同。

处理这种情况的最佳实践是什么?

最佳答案

这可能看起来违反直觉,但您可能需要考虑实现第二个接口(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/

相关文章:

java - Spring mvc 绑定(bind)错误国际化

没有 jstack 的 Java 线程转储

javax 无法将套接字转换为 TLS;

java - 在 Java 运行时选择要扩展的子类

java - android.view.InflateException : Binary XML file line #10

javascript - 使用 typescript 扩展方法

swift - 在 Swift 中,我应该编写一个单独的类来处理 UI 组件吗?

c# - 从 UI 中选择类型的最佳实践

python 使用包含模式复制文件

java - 在 C++ 中实现观察者模式