首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组合设计模式定义

组合设计模式定义
EN

Stack Overflow用户
提问于 2018-04-30 20:06:52
回答 1查看 675关注 0票数 0

在“设计模式:可重用的面向对象软件的元素”一书中,它写道:

“复合设计模式将对象组合成树结构,以表示部分的整体层次结构。”

在wikipedia中,复合设计模式被定义为:

复合模式描述一组对象,这些对象被视为同一类型对象的单个实例。组合的目的是将对象“组合”到树结构中,以表示部分的整体层次结构。

组合设计图案图片:

如果我的Compositecomponents存储为有向无圈图(例如,它只在队列数据结构中存储作为DAC源的组件,而这些源具有对另一个组件的引用,等等)。)这不是树,因为它违反了某些树结构条件。我还可以说我使用了复合设计模式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-01 12:37:32

您可以将组件存储在任意数据结构中。关键是,您的每个组件也可以被视为“整体”。

最简单的示例是包含子视图的CompositeView对象。CompositeView是一个视图,它的子视图对象也是视图。因此,您有一个对象的公共接口/抽象类。使用什么数据结构来存储子视图并不重要。

在上面提到的类似树的结构中,您的列表/集/dag/任何.组件定义给定父节点的一组子节点。

另一个例子可以是BrickWallHouseBlock。墙是由许多砖块组成的;同样的,一所房子是由四面墙组成的(例如,让我说一所房子没有屋顶)和一座房子是由很多房子组成的。组合模式中的砖块表示叶子,而墙、房子、块则是复合的特例,但它们都可以被认为是ConstructionComponents (或ConstructionEntities)。

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

https://stackoverflow.com/questions/50107485

复制
相关文章

相似问题

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