【发布时间】:2014-12-20 05:15:34
【问题描述】:
我有许多已经实现的 java 类。我想为这些类添加一些行为;在某些情况下,所有类的这种行为可能是相同的。还假设我不能创建一个超类,因为所有的类都已经实现了。
我的问题是在这方面我有什么选择。
接口:是否有可能对于某些接口我实现它们一次并让类共享单个实现(因为在某些情况下,所有类所需的实现都是相同的)。这将避免在所有类中手动复制代码。
我想过定义一个抽象类并让这些类扩展抽象类;问题是子类在这种情况下不会是抽象类的有意义的扩展,因为它们没有形成有意义的层次结构。
谢谢。
【问题讨论】:
-
好吧,您可以编写一个类来实现该行为,然后使该类成为每个类的私有成员,并将接口方法委托给该类。在 Java 中,这必须手动完成(您只需让封闭类调用私有类)。一些 IDE 会为您编写此委托代码。