行为型模式 访问者模式

 
 
1 主要将数据结构与数据操作分离。
interface Visitor{
    public void visitElement(ElementA elementA);
}
class VisitorA implements Visitor{
    @Override
    public void visitElement(ElementA elementA) {
        elementA.doSomething();
    }
}
abstract class Element{
    public abstract void accept(Visitor visitor);
}
class ElementA extends Element{
    public void doSomething(){
        System.out.println("this is elementA");
    }
    @Override
    public void accept(Visitor visitor) {
        visitor.visitElement(this);
    }
}
class ObjectStruture{
    private ArrayList<Element> list = new ArrayList<Element>();
    public void traverseElement(Visitor visitor){
        Iterator i = list.iterator();
        while (i.hasNext()){
            ((Element)i.next()).accept(visitor);
        }
    }
    public void addElement(Element element){
        list.add(element);
    }
}
public class Test{
    public static void main(String[] args){
        ObjectStruture objectStruture = new ObjectStruture();
        for (int i = 0; i < 5; i++)
            objectStruture.addElement(new ElementA());
        objectStruture.traverseElement(new VisitorA());
    }
}


 
 


    

猜你喜欢

转载自blog.csdn.net/qq_28197211/article/details/80482594