java学习笔记-设计模式22(访问者模式)

意图

  表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

 

public interface Visitor {  
    public void visit(Subject sub);  
}

  

public class MyVisitor implements Visitor {  
  
    @Override  
    public void visit(Subject sub) {  
        System.out.println("visit the subject:"+sub.getSubject());  
    }  
} 

  

public interface Subject {  
    public void accept(Visitor visitor);  
    public String getSubject();  
}

  

public class MySubject implements Subject {  
  
    @Override  
    public void accept(Visitor visitor) {  
        visitor.visit(this);  
    }  
  
    @Override  
    public String getSubject() {  
        return "love";  
    }  
}

  

public class Test {  
  
    public static void main(String[] args) {  
          
        Visitor visitor = new MyVisitor();  
        Subject sub = new MySubject();  
        sub.accept(visitor);      
    }  
} 

  

  转自:http://blog.csdn.net/zhangerqing/article/details/8245537

posted @ 2015-12-16 13:06  Iamabc  阅读(167)  评论(0编辑  收藏  举报