组合(composite)模式

组合模式主要应用在“树形结构”的情况下,如 GUI各控件、目录树等。

在有些设计模式的书里把组合模式定义为两种,即安全的组合模式和透明的组合模式。个人感觉只有“透明的组合模式”才是真正的模式,安全的组合模式不能称为模式。


对于“安全的组合模式”这里不做讨论,它只是一种普通的面向对象应用而已,没有什么特别之处。


上图所示为一个组合模式的框图,在这里最需要注意的一点就是  Leaf和Composite具有相同的接口(或抽像类)Component,无论是 Leaf 还是 Composite,对于其它类看来它只是一个 Component,既然它是一个 Component它就应该具有 Component 的方法。

一个组合模式的最顶层接点应该是具有孩子的结点,那么当最顶层的接点调用 operation 方法时,它会依次调用自己孩子的 operation, 而顶层接点的孩子如果还有孩子,它又会调用孩子的operation, 就这样递归下去,一直到叶子接点,叶子接点没有孩子,存储孩子的 ArrayList 为空,所以递归终止。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值