首页 > 其他 > 详细

组合模式

时间:2014-03-01 06:38:05      阅读:463      评论:0      收藏:0      [点我收藏+]

定义

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

组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动百来形容。

比如连锁店,连锁店在各个大地区一般都有一个总店。你在A店(总店)办了会员卡,在B店(分店)一样可以用,反之亦然。但B店在公司内部却是归A管的,而客户则不用关心这个层次关系,客户只需要在各个店都有相同的服务即可。

类构造图

bubuko.com,布布扣

涉及角色:

l  Component:是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。

l  Leaf:在组合中表示叶子结点对象,叶子结点没有子结点。

l  Composite:定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(add)和删除(remove)等。

l  Client:可以调用任何Component共同拥有的方法,虽然每个Component有所不同,但对客户来说,提供的服务却是一样的。

适用性

1.你想表示对象的部分-整体层次结构

2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。

组合模式,布布扣,bubuko.com

组合模式

原文:http://blog.csdn.net/woxueliuyun/article/details/20137085

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!