组合模式(Composite)

Posted KbDaVinci

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组合模式(Composite)相关的知识,希望对你有一定的参考价值。

一:定义

将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

(目的是在某些业务上让用户在使用单个对象和组合对象时面对的是同一个接口, 将两者的差别隐藏起来)

 

二:例子

2.1 对于成熟的GUI框架,通常用户在添加或者删除一个控件的时候,不需要知道这个控件是否拥有子控件。例如android  ui,添加一个Textview(单个对象)和添加一个LinearLayout(组合对象)的接口一致的, 因为他们都是继承自View类。

2.2 对于一个xml文件,在遍历xml文件里所有节点的这个需求上, 我们不需要在意这个节点是否拥有子节点,也就是无论叶子节点还是分支节点我们一样对待。

 

三:结构

image

 

四:缺点

直接使用实现类,并不是面向接口。

以上是关于组合模式(Composite)的主要内容,如果未能解决你的问题,请参考以下文章

组合模式(Composite)

设计模式学习篇-Composite组合模式

组合模式-composite

设计模式:组合模式(Composite)

组合(composite)模式

设计模式组合模式 Composite