1. 程式人生 > >路一步步走>> 設計模式二十一:Visitor-訪問者

路一步步走>> 設計模式二十一:Visitor-訪問者

package com.test.DPs.XingWei.Visitor;
/**
 * 行為型:Visitor-訪問者		外觀:作用面為 物件
 * 
 * 用途:表示一個作用於某物件結構中的各元素的操作。
 *     它是你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。
 *     
 * 理解:動態為被訪問者新增新操作。    
 */
interface Visitor{
	void visit(Subject sub);
}
interface Subject{
	void accept(Visitor visitor);
	String getSubject();
}
class MyVisitor implements Visitor{
	@Override
	public void visit(Subject sub){
		System.out.println("Visit the subject:"+sub.getSubject());
	}
}
class MySubject implements Subject{
	@Override
	public void accept(Visitor visitor){
		visitor.visit(this);
	}
	@Override
	public String getSubject(){
		return "Love";
	}
}
class Test {  
    public static void main(String[] args) {  
        Visitor visitor = new MyVisitor();  
        Subject sub = new MySubject();  
        sub.accept(visitor);      
    }  
}