zoukankan      html  css  js  c++  java
  • 【设计模式】迭代器模式


    Smile with tongue outWinking smileDevil

    场景

       在设计中,有一些对象存储着多个数据,每个对象中的数据访问方式不同,这些就叫做聚合对象,如果一个客户要访问每个对象里的数据,需要针对每种对象设计一种访问逻辑,这会导致设计复杂。

     思想

       将聚合对象的数据访问功能独立出来,提供一个公用接口,这个就是迭代器,每个对象自己实现具体的数据访问方式,客户只需要面向接口编程即可,这个就是迭代器模式,迭代器它是将功能抽出来,是单一职责原则的体现,同时,它在处理数据产生着和数据消费者之间关系的方面,原来是数据消费者直接依赖于数据生产者,现在改成了大家共同依赖一个迭代器接口,这也是依赖倒置原则。

    image

    原先情况下,用户是依赖每个集合的,采用依赖倒置之后

     image

    用户只需要依赖Iterator了,极大简化了用户使用的成本,也减少了替换成本(原来使用的是 TreeSet,后来需要修改成LinkedHashSet,很容易就能修改)。

  • 相关阅读:
    [php]php时间戳当中关于时区的问题
    [jQuery] jQuery如何获取同一个类标签的所有的值
    sed 命令基础
    Docker 学习第6课
    Docker 学习第五课
    Docker 学习第四课
    Docker 学习第三课
    Docker 学习第二课
    Docker学习第一课
    XdeBug的使用
  • 原文地址:https://www.cnblogs.com/jimmyai/p/design_pattern_iterator.html
Copyright © 2011-2022 走看看