设计模式---迭代器模式

Posted 五行缺知识

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式---迭代器模式相关的知识,希望对你有一定的参考价值。

package Iterator;

/**
 * 迭代器接口
 * @param <T>
 */
public interface MyIterator<T> 

    /**
     *  是否还有下一个元素
     * @return true 表示有,false 表示没有
     */
    boolean hasNext();

    /**
     * 返回当前位置的元素并将位置移动到下一位
     * @return
     */
    T next();

package Iterator;

import java.util.ArrayList;
import java.util.List;

public class ConcreteIterator<T> implements MyIterator<T> 


    /**
     * 模拟用一个 List
     */
    private List<T> mList = new ArrayList<>();

    private int cursor = 0;


    public ConcreteIterator(List<T> list) 
        this.mList = list;
    

    @Override
    public boolean hasNext() 
        return cursor != mList.size();
    

    @Override
    public T next() 
        //定义一个临时变量
        T obj = null;
        if (this.hasNext()) 
            obj = this.mList.get(cursor++);
        
        return obj;
    


package Iterator;


public interface Aggregate<T> 

    /**
     * 添加一个对象
     * @param t
     */
    void add(T t);

    /**
     * 删除的对象
     * @param t
     */
    void remove(T t);

    /**
     * 获取容器的迭代器
     * @return
     */
    MyIterator<T> iterator();


 

package Iterator;

import java.util.ArrayList;
import java.util.List;

public class ConcreteAggregate<T> implements Aggregate<T>

    /**
     * 模拟具体容器
     */
    private List<T> mLists = new ArrayList<>();

    @Override
    public void add(T t) 
        mLists.add(t);
    

    @Override
    public void remove(T t) 
        mLists.remove(t);

    

    @Override
    public MyIterator<T> iterator() 
        return new ConcreteIterator<T>(mLists);
    

  • myIterator: 迭代器接口。迭代器接口负责定义、访问和遍历元素的接口。
  • Concrete Iterator: 具体迭代器类。具体迭代器类的目的主要是实现迭代器接口,并记录遍历的当前位置。
  • Aggregate: 容器接口。容器接口负责提供创建具体迭代器角色的接口。
  • Concrete Aggregate: 具体容器类。具体迭代器角色与该容器相关联。

 

本文来自博客园,作者:五行缺知识,转载请注明原文链接:https://www.cnblogs.com/wyw123456/p/15696506.html

以上是关于设计模式---迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章

Java源代码-迭代器模式

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式-迭代器模式

Python 设计模式 — 行为型模式 — 迭代器模式

设计模式学习

设计模式之迭代器模式