设计模式之迭代器模式 引导篇
迭代器模式-引导篇 这两天,比较火的并购新闻就是,网易考拉被阿里以20亿美元收购。从此网易考拉不再姓“网”而姓“阿”了。并购后的网易考拉和阿里的电商系统进行对接。那么问题来了:在阿里有个早餐店的菜单(CakeHouseMenu)使用的事ArrayList来存放菜单的,考拉有个午餐店的菜单(DinerMenu)使用的是数组结构存放的。现在考拉和阿里合并了,两个点的菜单也要合并。 我们先来看看第一版设计: 因为马爸爸说了,国庆之前,必须合并上线,时间紧任务中,肿么办?那就再创建一个对象,使用一个菜单对象,将早餐店对象机午餐店对象作为属性,调用的时候,直接调用各自对象的就可以。类图如下: 顾客来了,点早餐,服务器就从菜单中调用早餐店的get方法。得到KFC早餐套餐 如果点的是午餐,就从菜单中调用午餐店的getMenuItem方法,得到快餐一份。 代码如下: 运行ConventionalMainTest运行结果: 我们可以看到,早餐、午餐菜单也都打印出来了。正常啊,没问题啊。 我们先来看看服务员(waitress)对象里面内容: 从上图中,我们可以看到在服务员对象中有早餐店对象、午餐店对象、l...












