我想为以下问题设计一个类图:
从我的域中的一个角度来看,我的元素(" ELEMENTs")是输入元素或输出元素,但不是两者。
从另一个角度来看,它们是节点或箭头(但不是两者)。
例如, e1 元素只能出现以下情况之一:
1)是一个输入节点
2)是一个输出节点
3)是输入箭头
4)是输出箭头。
我想在不使用约束(如OCL)
的情况下编码到目前为止,我已经提出了以下设计图(灰色类是抽象的):
我的问题: 是否有更高效的模式可以更准确地适应这个问题,没有多重继承?
答案 0 :(得分:2)
根据您的要求并根据我的理解,我宁愿使用Strategy
模式而不是继承。所以这将是两种不同的行为
元素将包含与这两种行为相关的所有函数(因为它具有这两种行为)。所以图表就像这样(元素仅指IShapeBehavior和IInputOutputBehavior)