美文网首页Android设计模式
Interator 迭代器模式

Interator 迭代器模式

作者: Charles1993 | 来源:发表于2019-12-07 19:33 被阅读0次

    设计原则学习笔记
    设计模式学习笔记

    作用

    针对数据集合,提供一种(若干)忽略集合内部细节以及访问细节的访问方式,从而使访问者与集合解耦。

    类图

    迭代器模式

    Java实现

    //定义数据结构
    public class Item {
    }
    //定义迭代器接口
    public interface Iterator {
        void moveToFirst();
        void next();
        boolean hasNext();
        Item getItem();
    }
    //定义创建集合以及迭代器的接口
    public interface Aggregate {
        Iterator createIterator();
    }
    public class ConcreteAggregate implements Aggregate {
        private Item[] items = new Item[]{new Item(), new Item()};
        @Override
        public Iterator createIterator() {
            return new ConcreteIterator(items);
        }
    }
    //实现具体的迭代器
    public class ConcreteIterator implements Iterator {
        private Item[] items;
        private int index;
    
        ConcreteIterator(Item[] items) {
            this.items = items;
        }
    
        @Override
        public void moveToFirst() {
            index = 0;
        }
    
        @Override
        public void next() {
            index++;
        }
    
        @Override
        public boolean hasNext() {
            return items != null && index > 0 && index < items.length;
        }
    
        @Override
        public Item getItem() {
            return items[index];
        }
    }
    // 客户端通过迭代器访问Item
    public class Client {
        public static void main(String[] args) {
            Aggregate aggregate = new ConcreteAggregate();
            Iterator iterator = aggregate.createIterator();
            iterator.moveToFirst();
            do {
                Item item = iterator.getItem();
                if (!iterator.hasNext()) {
                    break;
                }
                iterator.next();
            } while (true);
        }
    }
    

    Android源码中的应用

    • Connection类
    • 数据库游标

    相关文章

      网友评论

        本文标题:Interator 迭代器模式

        本文链接:https://www.haomeiwen.com/subject/eraugctx.html