Iterator Pattern

 
Iterator Pattern Defined:
provides a way to access the elements of an aggregate object sequentially without exposing its underlying represation;
个人理解:
对于在类中存在一些集合类(Vector,Array,LinkedList,HashTabled)等,当需要对集合类进行遍历等操作时,底层的寻址操作如(get(i),array[i])等,可以利用Iterator Pattern来隐藏集合类的遍历方法,提供对客户的一致接口;减少客户端的改动可能,客户端只需要调用一致的接口createIterator()来获取一个Iterator接口对象,利用该接口的子类来实现具体的遍历操作方法,客户端执行一致的next()等操作;另外,通过Iterator对象,很容易根据需要修改遍历行为的具体方法(可能不单单是顺序遍历,可能倒序等),这时不需要修改Aggregate类的实现,简化了Aggregate的接口,而Iterator与Aggregator也各自对自己负责(place the responsibility where it should be)
 
Single Responsibility Principle(SRP原则)
A class should have only one reason to change!!
"responsibility  means "a reason to change"";
SRP原则指出了一个类的设计原则是类应该附有单一的责任,而不应该持有多个毫不相干的责任,如果持有多种不相干的行为,则应该对该类进行分解,使不相干的方法行为属于不同的类或接口。原因是一个类如果持有过多的不相干的行为,当产生变化时,会导致类的大部分接口出现修改问题。在下面的例子中,Aggregate是集合类,只负责添加保存对象,不对遍历操作负责;而在Iterator中,只对集合类遍历操作负责,不关心具体的添加保存对象等行为;

 

 

CSDN上传图片好像出了问题,原来打算把UML传上来一起发,发不了,没办法!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值