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 }
  • 相关阅读:
    Jmeter之CSV文件读取
    性能计数器及性能分析方法
    性能测试的应用领域
    动态加载JS文件方法总结
    handler method 参数绑定常用注解
    A4纸网页打印
    page-break-before和page-break-after 实现分页打印
    $.ajax 中的contentType
    @Controller和@RestController的区别?
    web页面内容打印总结
  • 原文地址:https://www.cnblogs.com/xiongjiawei/p/6846128.html
Copyright © 2011-2022 走看看