zoukankan      html  css  js  c++  java
  • 【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern

     1 package com.tn.pattern;
     2 
     3 public class Client {
     4     public static void main(String[] args) {
     5         Object[] objs={"飞","雪","连","天","射","白","鹿","笑","书","神"};
     6         Aggregate aggregate=new ConcreteAggregate(objs);
     7         
     8         Iterator it=aggregate.iterator();
     9         it.first();
    10         it.next();
    11         System.out.println(it.isDone());
    12         it.currentItem();
    13         
    14         it.first();
    15         System.out.println("----------------------------------------");
    16         while(!it.isDone()){
    17             it.currentItem();
    18             it.next();
    19         }
    20     }
    21 }
    22 
    23 interface Iterator{
    24     void first();
    25     void next();
    26     boolean isDone();
    27     void currentItem();
    28 }
    29 
    30 interface Aggregate{
    31     Iterator iterator();
    32 }
    33 
    34 class ConcreteAggregate implements Aggregate{
    35     private Object[] datas=new Object[10];
    36     
    37     public ConcreteAggregate(Object[] objs){
    38         this.datas=objs;
    39     }
    40     
    41     public Iterator iterator(){
    42         return new ConcreteIterator();
    43     }
    44     
    45     class ConcreteIterator implements Iterator{
    46         private int index;
    47         @Override
    48         public void first() {
    49             index=0;
    50         }
    51         @Override
    52         public void next() {
    53             index++;
    54         }
    55         @Override
    56         public boolean isDone() {
    57             return index>=datas.length;
    58         }
    59         @Override
    60         public void currentItem() {
    61             if(index<datas.length)
    62                 System.out.println(datas[index]);
    63         }
    64     }
    65 }
  • 相关阅读:
    使用eNSP配置灵活QinQ
    使用eNSP配置端口QinQ
    python-多线程编程
    front-end plugin, generate pdf with html5 and jquery
    dotnetnuke peek. glance.
    a
    租房了,说一个奇妙的事情。
    总是容易忘记zen coding里怎么写标签text, mark一下吧
    springboot+druid连接池及监控配置
    springboot +mybatis分页插件PageHelper
  • 原文地址:https://www.cnblogs.com/xiongjiawei/p/6846128.html
Copyright © 2011-2022 走看看