zoukankan      html  css  js  c++  java
  • 迭代器模式(只描述基础)

    1.定义

      提供一种方法顺序访问一个聚合对象内部的各个元素,而又不暴露该对象的内部表示。

    2.使用场合及理解

      当你需要访问一个聚集对象,而且不管这些对象是什么,都需要遍历的时候,你就应该考虑使用迭代器模式;可以这么说,当你对聚集有多重方式遍历时,考虑使用迭代器;迭代器模式为遍历不同的聚集结构提供开始、下一个、是否结束、获取当前项等统一的接口。

      总的来说,迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器来负责,这样既可以做到不暴露集合的内部结构,又可以让外部代码透明的访问集合内部的数据。

    3.迭代器在高级语言内的封装

      迭代器模式在访问数组、集合、列表、等数据,尤其是数据库操作时,是非常普遍的应用。但正因为它太普遍了,所以现在各种高级语言都对它进行了封装,不需要自己再去理解,而是直接使用框架内封装的迭代器来实现就可以了。

      以.NET框架来说,它已经为我们封装好了相关接口,我们只需要实现这些接口就可以实现迭代器模式:IEumerator接口:支持对非泛型集合的简单迭代接口;IEnumerable接口:公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。(对于适用于泛型集合的迭代器,实际上是继承了非泛型的接口,然后做进一步封装实现)。

    4.使用(偷懒)

      由于当前我们使用的Java、C#、C++等高级语言已经封装好了迭代器,并且一些常用集合比如ArrayList、List等都已经实现了相关接口,因此我们可以直接使用而没必要在自己去针对集合创建迭代器。因此我认为我们只需要对其原理有所了解,然后能够正确使用不同的框架给我们封装好的接口就可以了(是不是有点偷懒<( ̄︶ ̄)>)。

  • 相关阅读:
    博客园美化-打赏代码
    苹果appID的获取方法
    简体、繁体相互转换
    iOS Socket编程(一)基本概念
    无线通信
    http与https通信
    iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
    iOS开发网络篇—GET请求和POST请求的说明与比较
    iOS开发网络篇—HTTP协议
    Verify the Developer App certificate for your account is trusted on your device.
  • 原文地址:https://www.cnblogs.com/qingtian-jlj/p/5990376.html
Copyright © 2011-2022 走看看