デザインパターンのIterator

反復モード

イテレータ(イテレータ)モード定義
  集約オブジェクトの内部表現を公開せず、順次アクセス・データ・オブジェクトの一連の高分子体を提供します。
  反復子は、オブジェクトの行動パターンであり

  、集約オブジェクトとそのトラバーサル挙動を分離するクライアント・アクセス・イテレータクラス型重合の間に挿入され、顧客は、その内部の詳細隠蔽

抽象重合(集約)ロール:
  定義します記憶装置は、追加、削除、およびインタフェース集約オブジェクトは、オブジェクトを作成イテレータ。
具体的な重合(ConcreteAggregate)役割:
  重合抽象クラスを達成するためには、イテレータの具体例を返します。
抽象反復子(イテレータ)の役割:
  定義アクセスインターフェイス要素とトラバース重合、一般に、第1のhasNext()を、(を含む)、次の() メソッドなどが挙げられます。
詳細なイテレータ(Concretelterator)役割:
  トラバースの現在の位置を記録し、集約オブジェクトのインターフェイスイテレータ完全トラバーサルで定義された抽象メソッドを実装します。
1つの パブリック クラスイテレータ{
 2      公共 静的 ボイドメイン(文字列[]引数){
 3          ConcreteAggregateのA = 新たConcreteAggregate()。
4          a.add(1 )。
5          a.add( "小花" )。
6          a.add(1.1 )。
7          a.remove(1 )。
8          Iteratoringイテレータ= a.getIterator()。
9          一方(iterator.hasNext()){
 10              のSystem.out.println(iterator.next())。
11          }
 12      }
13  }
 14  
15  // 抽象迭代器
16  インターフェースIteratoring {
 17      パブリック ブールのhasNext();
18  
19      パブリック()次のオブジェクト。
20  }
 21  
22  // 具体迭代器
23  クラス Concretelteratorが実装Iteratoring {
 24  
25      民間のArrayList <オブジェクト> のLiと、
26  
27      公共 Concretelterator(のArrayList <OBJECT> Li)と{
 28          に.Li = リチウム;
29      }
 30 
31      int型のカウント= 0 ;
32  
33      @Override
 34      パブリック ブールのhasNext(){
 35          であれば(カウント< li.size()){
 36              リターン 37          }
 38          リターン 39      }
 40  
41      @Override
 42      公的オブジェクトの次の(){
 43          であれば(のhasNext()){
 44              リターン li.get(カウント++ )。
45          }
 46          リターン ヌル47      }
 48  }
 49  
50  // 抽象聚合
51  インタフェース集合{
 52      公共 ボイド追加(オブジェクトOBJ)。
53  
54      公共 ボイド削除(オブジェクトOBJ)。
55  
56      公共Iteratoring getIterator()。
57  }
 58  
59  // 具体聚合
60  クラス ConcreteAggregateが実装集合を{
 61  
62      民間のArrayList ARR = 新しいArrayListを()。
63  
64      @Override
65      パブリック ボイド追加(オブジェクトobj){
 66          arr.add(OBJ)。
67      }
 68  
69      @Override
 70      公共 ボイド削除(オブジェクトobj){
 71          arr.remove(OBJ)。
72      }
 73  
74      @Override
 75      公衆Iteratoring getIterator(){
 76          リターン 新しいConcretelterator(ARR)。
77      }
 78 }

おすすめ

転載: www.cnblogs.com/loveer/p/11279526.html