迭代器模式(Iterator Pattern)

迭代器模式(Iterator Pattern)

迭代器模式可以用如下的结构来表示:

迭代器模式中有如下几个角色:

  1. Iterator接口,规范了迭代器本身具备hasNextnext两个方法。
  2. Iterator的具体实现类,在上述模型中,为BookShelfIterator,这是个类,用于执行具体的操作。
  3. Aggregate接口,用于提供一个方法,返回迭代器,该方法在上图中为iterator(),他是一个迭代器的build方法。这里可能会使用到工厂方法(Factory Method)模式
  4. Aggregate接口的具体实现类,需要具体到创建什么样的迭代器。

在上述的模型中,迭代和循环的过程不再依赖于具体的类实现,本身的功能全部由接口实现,这里符合了两个原则:

    1. 单一职责原则(Single Responsibility Principle,SRP),迭代器本身只专注于迭代,而具体的业务类,比如BookBookShelf只需要关注自身的业务逻辑就可。
    1. 开放封闭原则(Open-Closed Principle,OCP),在业务发生变化的时候,无需关注循环过程,比如:如果将BookShelf中的books集合,从数组修改为一个对象或者一个Vector,则无需修改BookBookShelf的代码,只需要新增一个关于Vector或者是对象的迭代器Iterator实现方法即可。
    1. 接口隔离原则(Interface Segregation Principle,ISP),将独立的功能模块抽离为单独的接口,并且进行实现,无需将其他的内容填充到该接口中。

迭代器模式(Iterator Pattern)

https://www.borgor.cn/posts/72d314b7.html

作者

Cyrusky

发布于

2024-08-19

更新于

2024-11-18

许可协议

评论