所以我一直想知道如何最好地构建我拥有的一些Java类。
原始结构是三个类的层次结构:
BaseData&Behavior
|
extends
|
BaseData&Behavior_WithExtraData&Behavior
|
extends
|
BaseData&Behavior_WithExtraData&Behavior_AndAlsoTwoMoreViewsAndCalculationsOnTheBaseData
需要新功能,这使我们想要一个类:
BaseData&Behavior_AndAlsoTwoMoreViewsOnTheBaseData
这个类不适合现有的层次结构!
如何在不重复代码的情况下以最优雅的方式创建这个新类?例如,在Ruby或Scala中,我可以使用模块或特征。
我认为在Java中这样做的方法是让AndAlsoTwoMoreViewsAndCalculationsOnTheBaseData
代码进入BaseData&Behavior_AndAlsoTwoMoreViewsAndCalculationsOnTheBaseData
和BaseData&Behavior_WithExtraData&Behavior_AndAlsoTwoMoreViewsAndCalculationsOnTheBaseData
所委托的类。
您认为在Java中构建此内容的最佳方法是什么?
谢谢, 亚历
答案 0 :(得分:4)
我会选择合成。我更喜欢继承,特别是在这样的情况下。听起来不像IS-A适用于任何一个基类。你只谈数据;没有关于行为。我不喜欢仅仅为了数据而继承。