我有一个仅在某些属性上有所不同的类层次结构,并且我想创建由类层次结构(如uml图片)组合而成的类,这可能导致层次结构爆炸。 这个设计有什么解决方案吗?它就像装饰器模式,但属性而不是行为。是否可以使用装饰器替代继承
答案 0 :(得分:0)
有可能。 您需要做的是反转此层次结构的依赖关系。在支持接口的语言(如c#)中,您可以创建这些结构并将其组合以提供这种行为。
“ 组合”将由基类修饰,该基类继承了组合类并实现了 ChildClass1(接口)例如,strong>和 ChildClass2(Interface)。将基类视为装饰器。在C#Here中检查装饰图案。
另一种选择是完全不使用装饰器,具有 Base Class , ChidClass1 , 2 和 3 是界面。