组合模式学习笔记


composite模式

意图:
composite属于对象结构型模式,它将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。


一、composite模式适用场景

1.需要表示对象的部分-整体的层次结构(这个看结构图就能看出来)

2.希望用户忽略组合对象和单个对象的不同,如下类图(Line、Rectangle、Text皆为单个对象,Picture为组合对象),对用户而已,它们都只需要调用Draw接口即可进行调用。
图片

二、C++代码实现示例

1.composite模式的典型结构图

在这里插入图片描述

2.典型结构图的C++实现(核心代码部分)

component类核心代码:
2

Leaf类核心代码
222
客户使用部:3333

程序运行结果
4444


模式优点总结

优点:
1.由于客户可以一致地使用组合对象与单个对象,故可以一定程度上简化客户代码
2.使得更加容易增加新类型的组件
3.使你的设计更加一般化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值