23种设计模式:迭代器模式

迭代器模式

1.介绍

概念

迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

迭代器模式属于行为型模式。

主要作用

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

解决的问题

不同的方式来遍历整个整合对象。

使用场景

1、访问一个聚合对象的内容而无须暴露它的内部表示。 2、需要为聚合对象提供多种遍历方式。 3、为遍历不同的聚合结构提供一个统一的接口。
(引用自菜鸟教程)

2.实现

背景

类UsernameList用来储存用户的姓名,利用迭代器模式创建一个迭代器类用来遍历UsernameList。

实现步骤

1.创建Iterator接口

public interface Iterator {
    public boolean hasNext();
    public Object next();
}

2.创建Container接口

public interface Container {
    public Iterator getIterator();
}

3.创建USernameList

public class UsernameList implements Container{
    private String[] usernames = {"zhangsan", "lisi", "wangwu"};
    @Override
    public Iterator getIterator() {
        return new UserIterator(usernames);
    }
}

4. 创建UserIterator类

public class UserIterator implements Iterator{
    String[] usernames;
    int index;

    public UserIterator(String[] usernames) {
        this.usernames = usernames;
    }

    @Override
    public boolean hasNext() {
        if (index < usernames.length) {
            return true;
        }
        return false;
    }

    @Override
    public Object next() {
        if (index < usernames.length) {
            return usernames[index++];
        }
        return null;
    }
}

5.创建测试类

public class IteratorPatternDemo {
    public static void main(String[] args) {
        UsernameList usernameList = new UsernameList();
        Iterator iterator = usernameList.getIterator();

        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}

6.运行结果

zhangsan
lisi
wangwu

上一篇:遍历Map的key


下一篇:TreeSet中添加的数据,要求是相同类的对象