设计模式读书笔记之组合模式(Composite)

组合模式:将对象组合成树形结构以表示部分和整体的层次结构. 组合模式使得用户对单个对象和组合对象的适用具有一致性.

composite

先用一个普通的例子来解释一下组合模式. 一个很大的集团公司, 在各个大区开有分公司, 在小地区开有办事处, 一个经理,可以在办事处开展业务, 也可以在分公司工作, 还可以在总公司工作, 这是因为, 不管是总公司, 分公司, 还是办事处, 经理的工作模式基本相同, 而且总公司, 分公司和办事处的外部结构也很相似, 任何一个经过培训的经理, 都可以在总公司, 分公司或办事处工作.  这是因为分公司, 总公司在管理上具有一致的接口. 再举一例, 文件系统中有文件, 也有文件夹(其实是特殊的文件), 文件和文件夹组合在一起, 可以成为一个更大的文件夹. 在用户看来,不管是文件, 还是文件夹, 还是更目录, 对它们的操作都是一致的(当然试图把一个文件夹放到文件下面是不容许的). 这就是说整体和部分具有一致的接口.

基础代码:

以上程序的最后输出:

适用情景: 当部分和整体呈现层次结构, 并且用户希望在操作上忽略部分和整体的差异时. 也就是说组合模式让客户可以一致的适用组合结构和单个对象.

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值