迭代器模式

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

当需要访问一个聚合对象且不管这些对象具体是什么就需要遍历的时候,就应该考虑用迭代器模式。对聚集对象有多种遍历方式时,也应该考虑迭代器模式。所谓迭代器模式,就是为遍历不同的聚集结构如开始、下一个、是否结束、当前哪一项等提供统一的接口。

迭代器模式示例

C#,Java等已经将迭代器模式实现在语言中了,下面代码使用Java实现了一个自定义迭代器。

package com.gacfox.demo;

import java.util.Iterator;
import java.util.NoSuchElementException;

public class NumberIterator implements Iterator<Integer> {
    private final int[] numbers;
    private int position = 0;

    public NumberIterator(int[] numbers) {
        this.numbers = numbers;
    }

    @Override
    public boolean hasNext() {
        return position < numbers.length;
    }

    @Override
    public Integer next() {
        if (!hasNext()) {
            throw new NoSuchElementException("No more numbers.");
        }
        int current = numbers[position];
        moveToNext();
        return current;
    }

    private void moveToNext() {
        position++;
    }
}
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap