设计模式之迭代器模式实例(c++)

本文介绍了设计模式中的迭代器模式,它允许访问聚合对象而不暴露其内部表示。通过一个实例——电视机遥控器,阐述了迭代器模式的组成包括抽象迭代器、具体迭代器、抽象聚合类和具体聚合类。在C++实现中,由于内部类的限制,具体迭代器需要关联具体聚合类以访问其内部数据。
摘要由CSDN通过智能技术生成

迭代器模式

迭代器提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标。

迭代器模式一般包含Iterator(抽象迭代器)、Conretelterator(具体迭代器)、Aggregate(抽象聚合类)和ConcreteAggregate(具体聚合类)。

迭代器模式实例之电视机遥控器

由类图可以看出,具体Tevelvison类依赖注入具体迭代器,在createiterator函数生成指定的具体迭代器。

在c++版本中,内部类不能直接访问外部类的成员函数,所以需要传具体聚合类的内部数据的存储地址,供迭代器访问,所以类图中的具体迭代器还需要关联具体聚合类。

下面的是c++版本的实现,相对于书上java版本的实现有所改动。

(由于Skyworth和TCL的内部实现基本一致,所以下面只示例了Skyworth)

抽象迭代器类TVIterator

//抽象迭代器类TVIterator
class TVIterator{
public:
	virtual void setChannel(int i) = 0;
	virtual void next() = 0;
	virtual void previous(
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值