【23种设计模式】之 组合模式(Composite Pattern)

需求:
(1)需要某种树形结构,可以容纳菜单、子菜单和菜单项
(2)需要确定能够在每个菜单的各个项之间游走,而且至少要像现在用迭代器一样方便。
(3)需要能够更有弹性地在菜单项之间游走。比方说:可能只需要遍历甜点菜单,或者可以遍历餐厅的整个菜单(包括甜点菜单在内)

组合模型:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

作用:这个模式能够创建一个树形结构,在同一个结构中处理嵌套菜单和菜单项组。

这里写图片描述

Tips:
①将MenuItem(叶节点)看作成没有孩子的节点。
②Menu里既能添加Menu,也能添加MenuItem。
③MenuComponent里包含MenuItem和Menu的所有方法。
④MenuItem和Menu只实现需要的方法,其他方法均抛出UnsupportedOperationException()

这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值