Obtenir des éléments de Composite Patter </ font>
Vérifiez avec la structure de classe suivante
classe | Explication |
---|---|
interface face |
Tapez et acceptez()Définir |
faceImple.class | Mettre en œuvre le visage |
faceList.class | Mettre en œuvre le visage Avoir une liste A une méthode qui émet un itérateur de liste |
Visitor.class | Fournir un modèle de visiteur |
user(Main.class) | Vérifiez le fonctionnement |
interface_face
interface face{
void accept(Visitor visit);
}
faceImple.class
class faceImple implements face{
public void accept(Visitor visitor){
System.out.println("."+this);}
}
faceList.class
class faceList implements face{
List ls = new ArrayList();
void add( face fc){ls.add(fc);}
public void accept(Visitor visit){
visit.visitor(this);}
Iterator iterate(){return ls.iterator();}
}
Visitor.class
class Visitor{
void visitor( faceImple imple ){
imple.accept(this);}
void visitor( faceList list ){
Iterator it = list.iterate();
while(it.hasNext()){
face fc = (face) it.next();
System.out.println("/"+fc);
fc.accept(this);
}
}
}
user(Main.class)
public static void main(String[] args){
faceList f1 = new faceList();
faceList f2 = new faceList();
faceList f3 = new faceList();
f3.add(new faceImple());
f3.add(new faceImple());
f2.add(new faceImple());
f2.add(f3);
f1.add(f2);
f1.accept(new Visitor());
}
Recommended Posts