设计模式之组合模式

1.组合模式

        组合模式(Compsite Pattern)是23 中设计模式之一。组合模式属于结构型模式,是一种“部分”--“整体”关系模型,优先用于一致性的“部分”--“整体”关系。

2.组合模式的原理与实现方式

        组合模式的原理是:对外提供一个通用的接口,可以添加和减少成员,从而组成整体。

        组合模式优先考虑的“部分”--“整体”方式是树形结构,因为树是一种有序的模型,可以清晰得表示出部分整体的关系【我在《由图与数的关系说起——兼谈XML语言的好处》(https://blog.csdn.net/wangzhezhilu001/article/details/51979372),对该观点明确表述过】。

       组合模式的实现方法是:

       1)对外提供一个统一的接口,该接口可以让根节点进行使用;

       2)提供枝干接口和叶结点接口(枝干接口和叶结点接口应该继承于统一接口);

       3)组合模式的实现,一般有两种:透明型和安全型。

       4)透明型组合模式由对外接口统一,枝干接口和叶结点接口继承功能;但在透明型组合模式中,叶结点不提供添加和删除功能支持。

       5)安全型组合模式中,对外统一接口只提供一个展示功能 ,只有枝干接口(或者说组合接口),实现了部分的添加和删除;叶子结点接口不提供部分的添加和删除功能。

3.组合模式的优缺点

       组合模式的优缺点:

       1)组合模式的优点在于对外一致处理实体和实体容器,并让整体和部分关系解耦;

       2)组合模式的缺点在于:设计会更复杂,会让程序更不容易理解。

4.组合模式的代码实现

      安全型组合模式实现:

     https://github.com/diziqian/DesignPattern/tree/master/CompositePattern/SafeCompositePattern

     透明型组合模式实现:

      https://github.com/diziqian/DesignPattern/tree/master/CompositePattern/TransparentCompositePattern

      透明型组合模式实现:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值