我想在我的软件中结合两种设计模式。我首先创建了一个复合模式,对我的业务问题进行建模。
因此,我很好地建模了我的问题的结构,并且将创建一个对象树。我想对此运行一些业务逻辑(比如执行函数,它返回许多元素)。但是这个算法需要在高层次上进行调整。即我希望能够更改图片中显示的所有类的执行功能。
我正在寻找一些有用的文档和/或提示!有任何想法吗?
我想在我的软件中结合两种设计模式。我首先创建了一个复合模式,对我的业务问题进行建模。
因此,我很好地建模了我的问题的结构,并且将创建一个对象树。我想对此运行一些业务逻辑(比如执行函数,它返回许多元素)。但是这个算法需要在高层次上进行调整。即我希望能够更改图片中显示的所有类的执行功能。
我正在寻找一些有用的文档和/或提示!有任何想法吗?
设计模式经常组合在一起。我认为大多数 Pattern 书籍分别显示每一个这一事实会误导人们了解它们。
您的示例有点含糊,因此很难完全理解您的意思,但是我认为将execute()
函数分解为单独的接口以将其转换为策略并允许将该策略注入 A 类(复合材料)是一种解决方案。然后,A 类可以将策略注入到正在合成的其他对象中。
我没有看到复合模式与组件是不共享共同祖先的异构类型的对象一起工作。您需要所有组件都继承某种Component
类,可能带有Composite
子Leaf
类来指定叶子和节点的一般行为。
A 怎么知道要在 C/E 中注入什么?它只知道它有“概念类”的孩子
A 不应该知道它有“概念类”的孩子。它应该只知道它有Component
孩子。C 和 E 是知道他们属于“概念类”的人。根据您的语言,C 和 E 的这种双重性质可能难以实现(没有多重继承等)
Class E
您能否提供有关“概念超类”和派生自“概念超类”这一事实如何Class C
干扰整个复合/执行()/策略事物的详细信息?没有这些知识,很难推荐任何东西。