工作积累之Iterator模式理解

本文解析了GOF定义的迭代器模式,阐述了其如何避免暴露容器内部细节的同时,遵循单一职责原则。文中还讨论了使用迭代器模式可以解决遍历状态保存的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。从定义可见,迭代器模式是为容器而生。再看STL:其中的容器提供迭代器,算法使用迭代器。模式UML图:



对容器对象的各个元素的访问必然涉及到遍历算法,如果单单是为了不暴露该对象的内部细节,可以在容器对象中实现遍历算法,提供遍历自身的接口,但是为什么不这么做呢? 在这种情况下,容器承受了过多的功能,它不仅要负责自己容器内的元素维护(添加、删除等等),而且还要提供遍历自身的接口,这就违反了单一职责原则

而且由于遍历状态保存的问题,不能对同一个容器对象同时进行多个遍历。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值