组合模式就是几个模式组合一起吗?来看看组合模式原理
组合模式引导篇及组合模式原理 在上一个《迭代器模式》中,我们讲到了阿里收购网易考拉后,店铺合并的问题使用到了迭代器模式。现在又有了新需求。我们先来看看新需求: 先说明:组合模式并非是把之前学过的设计模式组合在一起的一种模式哈。别理解错了。 在原有菜单的基础上,新增餐后甜点功能,如在中餐厅(DinerMenu)中添加餐后甜点。 我们先来回顾下上一个模式下的类图,如下图: 从上图中,我们可以知道,服务员手里拿的菜单遥控器,只是三个iterator 迭代器接口对象。 方案一:也是正常的,最容易想到的方案。 在DinerMenu菜单后面再追加一个子项,用来表示甜点的菜单。如果,我们这样写了。其实最后,还是使用的迭代器模式的。本篇,我们讲解的是组合模式。所以,咱要玩点高大上的。咱使用组合模式来实现这个需求。 我们还可以这么想,将甜点设计成一个数据结构,然后将这个数据结构,放到中餐厅菜单的其中一个菜单下,让甜点菜单成为其子菜单。类图如下: 当我们点击dinnerMenu的第三个item的是,会弹出submenu,这样形式。 如果要实现,上面形式的数据结构,那么我们原有系统会遇到的问题: 一:数据结...






