懒羊学习《深入浅出设计模式》C#代码手札之迭代器模式
2007-12-17 10:22
387 查看
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
第一次知道这个名词是在学C的时候,迭[DIE]代就是替代的意思,但有连续不断的意思,说白点就是批量替代(这是我的理解)。书中用了两个实例,而这两个实例中都存在遍历这个方法。但现在是要把这两个合在一起,由于这两个使用的方式不同,一个是ArrayList另一个则是真正意义的数组,因此要把它们两个合在一起的确并非易事,因此我们必须创建一个共用的东西去读取这里面的每一个数,而且得让这两个都能对接上,我觉得在这个类中存在着装饰者模式,首先对原始目标的进行装饰,也就是重新包装一下,但包装完的以后通过新的方法可以访问到原始类中的方法,从而调出原始类的数据。
这是装饰者上的一个方法(与被装饰者的关联处)
public ConcreteIterator(ConcreteList list)
{
this.CL = list;
index = 0;
}
这是被装饰者中的一个方法,这是后加上去的,原始的是不需要的
public IIterator GetIterator()
{
return new ConcreteIterator(this);//迭代关键,每个子类都必须添加这个方法
}
这方面唯一让我觉得与装饰者有区别的是,这个的主动权在被装饰者上,也就是通过被装饰者去调用装饰者,也就是由被装饰者去启动装饰完的类。
下载地址
第一次知道这个名词是在学C的时候,迭[DIE]代就是替代的意思,但有连续不断的意思,说白点就是批量替代(这是我的理解)。书中用了两个实例,而这两个实例中都存在遍历这个方法。但现在是要把这两个合在一起,由于这两个使用的方式不同,一个是ArrayList另一个则是真正意义的数组,因此要把它们两个合在一起的确并非易事,因此我们必须创建一个共用的东西去读取这里面的每一个数,而且得让这两个都能对接上,我觉得在这个类中存在着装饰者模式,首先对原始目标的进行装饰,也就是重新包装一下,但包装完的以后通过新的方法可以访问到原始类中的方法,从而调出原始类的数据。
这是装饰者上的一个方法(与被装饰者的关联处)
public ConcreteIterator(ConcreteList list)
{
this.CL = list;
index = 0;
}
这是被装饰者中的一个方法,这是后加上去的,原始的是不需要的
public IIterator GetIterator()
{
return new ConcreteIterator(this);//迭代关键,每个子类都必须添加这个方法
}
这方面唯一让我觉得与装饰者有区别的是,这个的主动权在被装饰者上,也就是通过被装饰者去调用装饰者,也就是由被装饰者去启动装饰完的类。
下载地址
相关文章推荐
- 懒羊学习《深入浅出设计模式》C#代码手札之工厂模式与抽象工厂
- 懒羊学习《深入浅出设计模式》C#代码手札之单件模式
- 懒羊学习《深入浅出设计模式》C#代码手札之命令模式
- 懒羊学习《深入浅出设计模式》C#代码手札之模板方法模式
- 懒羊学习《深入浅出设计模式》C#代码手札之组合模式
- 懒羊学习《深入浅出设计模式》C#代码手札之状态模式与代理模式
- 懒羊学习《深入浅出设计模式》C#代码手札之适配器模式与外观模式
- 懒羊学习《深入浅出设计模式》C#代码手札之观察者模式
- 懒羊学习《深入浅出设计模式》C#代码手札之装饰者模式
- 懒羊学习《深入浅出设计模式》C#代码手札之策略模式
- 用C#实现win7下vs2008的激活(附学习交流代码)
- 我的C#入门学习代码整理
- 让C#委托来帮你简化代码,学习使用Func、Action委托
- 编写高质量C#代码学习笔记(5)
- C#学习笔记整理-迭代器模式介绍
- C#学习进阶Hello World的17种写法代码分享
- C#设计模式之迭代器模式示例代码
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- 【转】用C#实现win7下vs2008的激活(附学习交流代码)
- C#代码优化学习总结(3)