Design Pattern: Composite 模式

简介:

  学习是分享和合作式的!

转载请注明出处:http://blog.csdn.net/wdzxl198/article/details/9417163

文章摘自: http://www.riabook.cn/doc/designpattern/

如果以绘图为例的话,一个文字是一个绘图元件,一个线段是一个绘图元件,而一个长方形也是一个绘图元件,这些绘图元件可以组成一个图片,如果将这个图片也 视作一个绘图元件,则这么递回绘图下去,就可以组合成一个较大的、复杂的图形元件,这样的目的可以使用Composite模式来解决。
对于使用者而言,无论是文字、线段或长方形,甚至是组合后的图片元件,它们都拥有一个共同的行为,使用者基本上并不会感觉出它们之间的操作有任何的不同,您可以拖曳、放大、缩小等等,这些行为都是一致的。
以 UML 来表示上面这个例子的结构:

Composite

对于Text、Line与Rectangle而言,Picture是一个容器,然而Picture继承Graphic类,所以它也是一个绘图元件,您可以进一步的将Picture组合至另一个Picture中,以形成较大的、复杂的图形。
组合模式的UML结构图如下所示:

Composite

依此架构,您可以递回的组合图形元件,例如:

Composite

除了绘图元件之外,一些具有层次性或组合性的物件也可以使用Composite模式,像是电路元件、设备元件等等,使用Composite模式可以大大减低这些元件设计的复杂度。

Edit by Atlas,

Time:08:20

目录
相关文章
|
2月前
|
设计模式 C# C++
组合模式(Composite Pattern)
组合模式是一种结构型设计模式,将对象组织成树形结构,表示“部分-整体”的层次关系,使客户端可以一致地处理单个对象和组合对象。适用于文件系统、组织架构等场景,具有高灵活性和扩展性,但会增加系统复杂性。
33 1
|
设计模式 机器学习/深度学习 Java
组合模式(Composite Pattern)
组合模式(Composite Pattern)是一种结构型设计模式。
93 0
|
UED 开发者 设计模式
|
索引
设计模式---合成模式(DesignPattern_Composite)
摘录自:设计模式与游戏完美开发 十年磨一剑,作者将设计模式理论巧妙地融入到实践中,以一个游戏的完整实现呈现设计模式的应用及经验的传承 《轩辕剑》之父——蔡明宏、资深游戏制作人——李佳泽、Product Evangelist at Unity T...
777 0
|
程序员 设计模式 关系型数据库

热门文章

最新文章