书城计算机大话设计模式
11030400000214

第214章 2 迭代器模式

这个模式就是一个迭代器模式的生活例子!对于赚钱的老公,他就是一个聚合类,钱对他来说就是一个聚合对象,他老婆就是一个客户端应用程序,银行卡就是一个迭代器!将检查是否有钱和取钱的功能分离给银行卡完成!这样他可以安心去挣钱了!银行卡完成了一个迭代器的功能,有检查是否有钱和取钱的功能!

大B:“好了,说这么多,我们对迭代器模式有了个大概了解!”

小A:“在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现。”

大B:“归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据。面向对象设计原则中有一条是类的单一职责原则,所以我们要尽可能的去分解这些职责,用不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。”