组合模式原理
餐厅菜单新需求导致遍历困难
菜单聚类结构现状

添加餐后甜点子菜单

结构抽象

组合模式原理

处理超类,改造迭代器,实现细节处理

示例代码讲解
类结构图

代码
1.超类 MenuComponent

2.子类 菜单项 MenuItem
3.子菜单 SubMenu

composeIterator迭代器
栈数据结构
peek 查询不弹出
4.中餐菜单 DinerMenu




5.西餐菜单 DinerMenu
关键点
原理和意义
对迭代器进行改造,菜单项如何遍历子菜单
数据结构考虑:menuItem,二维层面考虑
菜单项和子菜单、菜单都是属于一个超类,整体和部分的区别被超类取消了
无子菜单则返回空迭代器,有子菜单则返回迭代器,压入栈,下次访问。


