组合模式

组合模式(Composite):
    是一组对象的组合,这些对象可以是容器对象,表现为组的概念:另外一些对象则代表了单个对象,或成为叶子对象。在对组合进行建模时,必须注意两个重要的概念。第一个概念是组对象允许包含单对象,也可以再包含其他的组对象(常见的错误是将组对象设计为只允许包含叶子对象)。第二个概念则是要为组合对象和单对象定义共同的行为。就可以为组对象与单对象定义统一的类型,并将该组对象建模为包含同等对象的集合。
  组合模式的意图是为了保证客户端调用单对象与组合对象的一致性。
  下图展示了一个经典的组合结构。Leaf类和Composition类都实现自一个抽象的Compoment通用接口,同时Composition对象又包含了其他的Composition和Leaf对象的集合。
   Component类中为包含任何一个具体方法,因而可以将其定义为接口,让Leaf类和Composite类去实现它。

                                         

图中组合模式的关键在于组合对象可以包含其他组合对象(不仅仅是叶子对象),且Composite和Leaf节点共享了一个共同的接口。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值