欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程语言 > asp.net >内容正文

asp.net

设计模式的理解:迭代器模式(iterator) -ag凯发k8国际

发布时间:2024/10/14 asp.net 27 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 设计模式的理解:迭代器模式(iterator) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

     迭代器模式,又称游标模式,提供一种方法顺序访问一个集合对象中的各个元素,而又不需要暴露该对象的内部表示。

 

template class iterator{public :vitrual void first() = 0;vitrual void next() = 0;vitrual bool isdone() = 0;vitrual t& currentitem() = 0; }template class aggregate{public :iterator getiterator()=0; }template class myiterator: public iterator{ private :mycollection mc;public :myiterator(const mycollection &c):mc(c){}vitrual void first(){...}vitrual void next() {...}vitrual bool isdone() {...}vitrual t& currentitem() {...} }template class mycollection: public aggregate{public :iterator getiterator(){ return myiterator(*this);}..... }void main(){mycollection mycollection;....iterator iterator = mycollection.getiterator();for(iterator.first();iterator.isdone();iterator.next()){cout<<"currentitem:"< 

可以通过内部类可是可行的,即把myiterator类变成mycollection的内部类实现。为了提高性能,还可以考虑从运行时多态改成编译时多态。在stl库中,已经有成熟的迭代器了,比上述代码的性能更优越,功能更丰富,例如begin() n 等操作,反向迭代器等。 但是迭代器的思想没变,也怎么不复杂。

 

 

总结

以上是ag凯发k8国际为你收集整理的设计模式的理解:迭代器模式(iterator)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图