设计模式之迭代器模式(Iterator模式)

一、UML类图

在这里插入图片描述

二、代码示例

  • Client:
public class Client {
    public static void main(String[] args) {
        Aggregate aggregate = new ConcreteAggregate();
        Iterator iterator = aggregate.iterator();
    }
}
  • Iterator:
public interface Iterator {
    boolean hasNext();
    Object next();
}
  • ConcreteIterator:
public class ConcreteIterator implements Iterator{
    private Aggregate aggregate = null;

    public ConcreteIterator(Aggregate aggregate) {
        this.aggregate = aggregate;
    }

    @Override
    public boolean hasNext() {
        return true;
    }

    @Override
    public Object next() {
        return null;
    }
}
  • Aggregate:
public interface Aggregate {
    Iterator iterator();
}
  • ConcreteAggregate:
public class ConcreteAggregate implements Aggregate{
    @Override
    public Iterator iterator() {
        return new ConcreteIterator(this);
    }
}

三、角色介绍

  • Client(客户端):
    客户端角色,程序的调用者。
  • Iterator(迭代器):
    该角色负责定义按顺序逐个遍历元素的接口。
  • ConcreteIterator(具体的迭代器):
    该角色负责实现Iterator所定义的接口,并包含了遍历集合所必须的信息。
  • Aggregate(集合):
    该角色负责定义创建Iterator角色接口。
  • ConcreteAggregate(具体的集合):
    该角色负责实现Aggregate角色所定义的接口,会创建出具体的Iterator角色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值