首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >组合策略与组合模式

组合策略与组合模式
EN

Stack Overflow用户
提问于 2013-10-15 14:22:27
回答 2查看 2.8K关注 0票数 2

我想在我的软件中结合两种设计模式。我首先创建了一个复合模式,对我的业务问题进行建模。

因此,我对问题的结构进行了很好的建模,并创建了一个对象树。我想对此运行一些业务逻辑(比如执行函数,它返回许多元素)。但是该算法需要在较高的层次上进行调整。我希望能够更改图片中显示的所有类的执行函数。

我正在寻找一些有用的文档和/或提示!有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-16 12:01:41

我不认为组合模式能很好地工作,因为组件是异构类型的对象,它们不共享共同的祖先。您需要所有组件来继承某种类型的Component类,可能需要使用CompositeLeaf子类来指定树叶和节点的一般行为。

A如何知道在C/E中注入什么?它只知道它有“概念类”的孩子。

A不应该知道它有“概念类”的孩子。它应该只知道它有Component的孩子。C和E是那些知道自己属于“概念类”的人。根据您的语言,C和E的这种双重特性很难实现(没有多重继承,等等)。

能否提供详细信息,说明Class EClass C是如何从“概念性超类”派生出来的,对整个复合/ execute() /策略事件有何影响?没有这方面的知识,很难推荐任何东西。

票数 0
EN

Stack Overflow用户

发布于 2013-10-15 17:48:02

设计模式通常是结合在一起的。我认为,大多数模式书都是分开显示的,这对了解它们的人来说是误导人的。

您的例子有点模糊,因此很难完全理解您的意思,但是,我认为将execute()函数分解成一个单独的接口,将其转换为一个策略,并允许将该策略注入到A类(复合的根)是一种解决方案。然后,A类可以将策略注入到正在组合的其他对象。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19383673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档