设计模式之七--组合模式

定义:

组合(Composite)模式是一种对象的行为模式。将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

 

理解:

  组合模式,关注的是部分与整体的关系,关心的是一类对象的共同方法或属性,目标是使代码符合OC原则,易拓展,易维护。方法是通过对 对象进行统一的抽象,从而使高层代码可以忽略结构,专注业务。通常的表现形式为树形结构。

以动物园为例(本系列跟动物园杠上了),为了方便进行不同单位、不同分类或者不同部分动物的体重(业务目标),从而采用抽象方法,把动物、部门进行抽象。如下图:

把上图中所有节点,统一抽象为:单位,单位分两种:节点单位和叶子单位。节点单位本身没有体重属性,他的属性是下属所有动物体重之和。可以看到,不同部门之间的层级是有区别的,有的三层,有的四层。

而组合模式,带来了一个好处,就是当我想要统计某单位体重的时候,调用统一方法:getWeight即可。

具体实现,则是利用递归,遍历根单位下属子单位即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值