设计模式之迭代器模式的学习思考

迭代器模式最经典的应用应该就是Java中的迭代器了,在Java集合Collection接口就继承了Iterable。

种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

迭代器模式属于设计模式里的行为模式。

优点:

  • 它支持以不同的方式遍历一个聚合对象。
  • 迭代器简化了聚合类。
  • 在同一个聚合上可以有多个遍历。

缺点:

  • 由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。

代码:

    //定义迭代接口
interface Iterator{
    public boolean hasNext();   //是否有下一个元素,即还有没有没有遍历到的元素
    public Object next();       //返回元素
}

interface Container{            //获得迭代器
    public Iterator getIterator();
}

class NameRepository implements Container{
    public String names[]={"L","H","J"};
    public Iterator getIterator() {

        return new NameIterator();
    }
    private class NameIterator implements Iterator{
        int index;      //指针,用来遍历集合对象

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


        public Object next() {
            if(this.hasNext()){
                return names[index++];      //返回元素,并将指针后移一位
            }
            return null;
        }

    }

}
public class IteratorPatternDemo {

    public static void main(String[] args) {
        NameRepository nameRepository=new NameRepository();

        for(Iterator iter=nameRepository.getIterator();iter.hasNext();){
            String name=(String)iter.next();
            System.out.println("Name:"+name);
        }
    }
}

输出:

    Name:L
    Name:H
    Name:J
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值