Design Pattern - Structural - Composite模式

意图:
  将对象组合成树形结构以表示“部分-整体”的层次结构。
  Composite使得用户对单个对象和组合对象的使用具有一致性。
适用性:
  你想表示对象的部分-整体层次结构。
  你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
  (根据J道的理解,遇到树形结构的情形,就可以尝试是否使用组合模式。

组合模式一般有两实现方式:安全性与透明性模式。它们是一对互为矛盾的要求。
透明性模式:
  Component(分支结点)里面声明所有用来管理子类对象的方法。
  目的就是为了使客户看来Leaf和Composite没有区别。
  但这造成安全性问题。

安全性模式:
  只在Composite里面声明所有的用来管理子类对象的方法。
  这样就避免了安全性问题,
  但是由于Leaf和Composite有不同的接口,所以又失去了透明性。

具体参见下面网页:
  http://embed.chinaitlab.com/linux/845843.html

我的观点:
组合模式主要用来处理类似大礼包样子的对树形结构复杂对象。
例如,计算指定物品的重量、价格等;或对树形结构对象进行统一授权,统一修改外观等。
命令调用者不需要事先确定目标对象是一个简单个体还是一个复合体。

转载于:https://www.cnblogs.com/zjstar12/archive/2012/02/25/2367605.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值