1 PackageCom.tn.pattern;2 3 Public classClient {4 Public Static voidMain (string[] args) {5Object[] objs={"Fly", "Snow", "Lian", "Day", "shoot", "white", "deer", "Laugh", "book", "God"};6Aggregate aggregate=Newconcreteaggregate (OBJS);7 8Iterator it=aggregate.iterator ();9 It.first ();Ten It.next (); One System.out.println (It.isdone ()); A It.currentitem (); - - It.first (); theSystem.out.println ("----------------------------------------"); - while(!It.isdone ()) { - It.currentitem (); - It.next (); + } - } + } A at Interfaceiterator{ - voidFirst (); - voidnext (); - BooleanIsDone (); - voidCurrentItem (); - } in - Interfaceaggregate{ to Iterator Iterator (); + } - the classConcreteaggregateImplementsaggregate{ * PrivateObject[] Datas=NewObject[10]; $ Panax Notoginseng Publicconcreteaggregate (object[] objs) { - This. datas=Objs; the } + A PublicIterator Iterator () { the return Newconcreteiterator (); + } - $ classConcreteiteratorImplementsiterator{ $ Private intindex; - @Override - Public voidFirst () { theIndex=0; - }Wuyi @Override the Public voidNext () { -index++; Wu } - @Override About Public BooleanIsDone () { $ returnindex>=datas.length; - } - @Override - Public voidCurrentItem () { A if(index<datas.length) + System.out.println (Datas[index]); the } - } $}
"Java design mode" "behavior pattern Behavioral pattern" iterator mode iterator pattern