1迭代器模式的核心内容是:
A:不断重新定义虚函数,在不改变原来的程序功能的情况下,不断增强程序的功能。
2迭代器模式的作用:通过增加纯虚函数的方式不断增强程序
3迭代器模式具体描述
//迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。
//多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。
//迭代子模式将迭代逻辑封装到一个独立的子对象中,从而与聚集本身隔开。
//迭代子模式简化了聚集的界面。
//每一个聚集对象都可以有一个或一个以上的迭代子对象,
//每一个迭代子的迭代状态可以是彼此独立的。
//迭代算法可以独立于聚集角色变化。
//
//我爱上了Mary,不顾一切的向她求婚。Mary:
//“想要我跟你结婚,得答应我的条件” 我:“什么条件我都答应,你说吧”
//Mary:“我看上了那个一克拉的钻石” 我:“我买,我买,还有吗?”
//Mary:“我看上了湖边的那栋别墅” 我:“我买,我买,还有吗?”
//Mary:“我看上那辆法拉利跑车” 我脑袋嗡的一声,坐在椅子上,一咬牙:
//“我买,我买,还有吗?” ……
4.迭代器模式类图(略)
5.代码:
#include<iostream>
#include <string>
using namespace std;
//迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。
//多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。
//迭代子模式将迭代逻辑封装到一个独立的子对象中,从而与聚集本身隔开。
//迭代子模式简化了聚集的界面。
//每一个聚集对象都可以有一个或一个以上的迭代子对象,
//每一个迭代子的迭代状态可以是彼此独立的。
//迭代算法可以独立于聚集角色变化。
//
//我爱上了Mary,不顾一切的向她求婚。Mary:
//“想要我跟你结婚,得答应我的条件” 我:“什么条件我都答应,你说吧”
//Mary:“我看上了那个一克拉的钻石” 我:“我买,我买,还有吗?”
//Mary:“我看上了湖边的那栋别墅” 我:“我买,我买,还有吗?”
//Mary:“我看上那辆法拉利跑车” 我脑袋嗡的一声,坐在椅子上,一咬牙:
//“我买,我买,还有吗?” ……
class Iterator;
class Aggregate
{
public:
virtual Iterator *createIterator() = 0;
};
class Iterator
{
public:
virtual void first() = 0;
virtual void next() = 0;
virtual bool isDone() = 0;
virtual bool isDoneA() = 0;
//virtual bool isDoneA() = 0;
};
class ConcreteAggregate :public Iterator
{
public:
void first(){}
void next(){}
bool isDone(){}
virtual bool isDoneA(){}
};
int main
{
cin.get();
return 0;
}