类层次结构的组合爆炸

时间:2020-03-06 10:11:39

标签: oop inheritance design-patterns

我有一个仅在某些属性上有所不同的类层次结构,并且我想创建由类层次结构(如uml图片)组合而成的类,这可能导致层次结构爆炸。 这个设计有什么解决方案吗?它就像装饰器模式,但属性而不是行为。是否可以使用装饰器替代继承enter image description here

1 个答案:

答案 0 :(得分:0)

有可能。 您需要做的是反转此层次结构的依赖关系。在支持接口的语言(如c#)中,您可以创建这些结构并将其组合以提供这种行为。

组合”将由基类修饰,该基类继承了组合类并实现了 ChildClass1(接口) ChildClass2(Interface)。将基类视为装饰器。在C#Here中检查装饰图案。

另一种选择是完全不使用装饰器,具有 Base Class ChidClass1 2 3 界面