设计模式之迭代器

设计模式之迭代器

特点:提供一种方法顺序访问一个聚合(集合)对象中的各个元素,而又不暴露其内部的表示

看《head first designpartterns》入门设计模式有一段时间了,就是平时没怎么想写博客,但学习很容易累,有时候就会不自觉偷懒导致就算看完了也很模糊。逼自己写一下博客可能会有一点收获吧。

开始看设计模式不久,但涉及模式大概意思差不多就是解耦 对扩展开放,对修改关闭虽然还有很多OO原则,但大多数都是解耦的一种实现方式罢了

而我们的迭代器iterator也是解耦的一种工具,让我们各种集合都实现迭代器接口
public interface Iterator {
boolean hasNext();
E next();
int remove();
}
改接口和java提供的迭代器一样,但是自己可以根据实际情况添加自己想要的功能。当我们的不同的集合类想要同时无差别使用一种方法实现遍历不同的类型的集合(Array和list等)我们就使他们都实现iterator接口,在具体的实现类里面进一步各自实现自己的迭代功能。这也是一种解耦方式,操作的时候只用实现依赖一个方法,减少了多个集合多个依赖的方式。所以在外部调用迭代接口时,并不知道我们实现的是Array还是list,我们都是提供了一个实现了iterator接口的一个迭代器。

OO设计原则中有一个单一责任原则:一个类应该只有一个引起变化的原因,而我们的迭代器使用过程中,很多情况下我们在一个类中得到了需要的各种迭代器,接下来按照迭代器遍历元素

但这设计到了引起变化 的两个原因,一个是管理迭代器,一个是遍历。

内聚:度量一个类或模块紧密达到单一目的或责任

高内聚相对于低内聚,代码的维护更为简

为了实现高内聚的,下一个学习的设计模式是

组合模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值