【设计模式】迭代器模式


Smile with tongue outWinking smileDevil

场景

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

 思想

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

image

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

 image

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

posted @ 2020-03-08 16:30  jimmy_ai  阅读(208)  评论(0编辑  收藏  举报