迭代器模式:提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。

场景还原(餐馆合并):

煎饼屋和午餐店合并后需要定制一份新的餐单,但由于煎饼屋的原菜单是用链表实现,而午餐点原菜单是用数组实现(他们的定义如下所示),所以打印新餐单的时候需要分别循环遍历原餐单中的菜单项。

如果还有第三家餐厅加入,我们还需要第三个循环,意味着要写很多重复代码。解决方法利用迭代器模式。

UML类图阐述:


设计模式(数据结构)—— 迭代器模式

模式结构:

  • Iterator:定义迭代器访问和遍历元素的接口;
  • ConcreteIterator:实现具体的迭代器;
  • Aggregate:定义的容器,创建相应迭代器对象的接口;
  • ConcreteAggregate:具体的容器实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。

更多C++示例代码,请移步到本人的github。


设计模式,祝愿你把代码写成艺术。

6/26/2017 11:12:06 AM

相关文章:

  • 2021-10-11
  • 2022-02-09
猜你喜欢
  • 2022-12-23
  • 2021-08-27
  • 2021-10-28
  • 2021-09-25
相关资源
相似解决方案