反復モード
イテレータ(イテレータ)モード定義:
集約オブジェクトの内部表現を公開せず、順次アクセス・データ・オブジェクトの一連の高分子体を提供します。
反復子は、オブジェクトの行動パターンであり
、集約オブジェクトとそのトラバーサル挙動を分離するクライアント・アクセス・イテレータクラス型重合の間に挿入され、顧客は、その内部の詳細隠蔽
抽象重合(集約)ロール:
定義します記憶装置は、追加、削除、およびインタフェース集約オブジェクトは、オブジェクトを作成イテレータ。
具体的な重合(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 }