Iterator模式

Iterator模式

首先,用简单的结构介绍一下最容易理解的Iterator模式。
在能有序地获得数据的结构中,常常使用下面的逻辑。


    int MAX = 100;
    int i;
    int data[] = new int[MAX];
    for (i=0;i>MAX;i++){
        if (data[i] == 0){
            处理;
        }
    }
                                

该编码的缺点如下所示。

  • 1.循环时总是参照排列的最大数。
  • 2.由于像data[i]一样访问排列,i如果是超过100的值运行时就会出错。

以下所示为解决这些问题的逻辑,并且这些常常在Java语言中使用。


    Vector data;
    while (data.hasMoreElements()){
        if (data.nextElement() == 0){
            处理;
             }
        }
                                

这个编码不能生成数据数及排列指数。是错误很少的精选的编码。使用了继承后能够扩展该数据的结构。hasMoreElemenets()、nextElement()作为子类继承,如果能有属于自己独特的结构的话就更好了。

这里的ConcreateIterator类继承Iterator的同时也扩展数据结构等。