一位記者做街頭訪問的節目並贈送禮物,如果採訪的是女性送一朵玫瑰花男的送乙隻鋼筆。
戰爭是男人的事讓女人走開。
模式定義:訪問者模式即表示乙個作用於某物件結構中的各元素的操作,它使我們可以在不改變各元素的類的前提下定義作用於這些元素的新操作。
案例說明:案例中男人和女人這兩種元素是穩定的,記者(訪問者)對不同的性別(穩定的資料)送出了不同的禮物(操作)。
戰爭是男人的事讓女人走開,戰爭是乙個訪問者,對男人和女人這兩組元素有著不同的操作,男人參加戰爭女人遠離戰爭。
優點:在不改變元素下,解耦操作,拓展操作
注意:使用時應考慮元素的穩定性(一般是元素的個數),元素變化所有的訪問者都要改動。 元素上的操作是否頻繁可變。
**:首先定義抽象類human並接受訪問者
public abstract class human
/*** 接受訪問者訪問
* @param visitor
*/public abstract void accept(visitor visitor);
}
男人public class man extends human
@override
public void accept(visitor visitor)
}
女人public class woman extends human
@override
public void accept(visitor visitor)
}
訪問者public inte***ce visitor
記者(訪問者)public class reportervisitor implements visitor
@override
public void visitor(woman woman)
}
戰爭(訪問者)public class warvisitor implements visitor
@override
public void visitor(woman woman)
}
測試public class test
}
結果佐為獲得了乙隻鋼筆
雪莉獲得了一束玫瑰
佐為參加戰爭
雪梨遠離戰爭
訪問者模式
訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...
訪問者模式
行為模式中的訪問者模式 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作,一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。動機 類層次結構中可能經常由於引入新的操作,從而將型別變得脆弱。在軟體構建過程中,由於需求的改變,某些類層次結構中常常需要增...
訪問者模式
1.說明 namespace visitorspattern 象棋類 public abstract class chess public class redchess chess public class blackchess chess 在贏的情況下的狀態 public class win ac...