//男人
class man : person
}//女人
class woman : person
}
abstract class action
//成功
class success : action
時,背後多半有乙個偉大的女人。", concreteelementa.gettype().name, this.gettype().name);
}public override void getwomanconclusion(woman concreteelementb)
時,背後大多有乙個不成功的男人。", concreteelementb.gettype().name, this.gettype().name);}}
//失敗
class failing : action
時,悶頭喝酒,誰也不用勸。", concreteelementa.gettype().name, this.gettype().name);
}public override void getwomanconclusion(woman concreteelementb)
時,眼淚汪汪,誰也勸不了。", concreteelementb.gettype().name, this.gettype().name);}}
//戀愛
class amativeness : action
時,凡事不懂也要裝懂。", concreteelementa.gettype().name, this.gettype().name);
}public override void getwomanconclusion(woman concreteelementb)
時,遇事懂也裝作不懂", concreteelementb.gettype().name, this.gettype().name);}}
//結婚
class marriage : action
時,感慨道:戀愛遊戲終結時,『有妻徒刑』遙無期。", concreteelementa.gettype().name, this.gettype().name);
}public override void getwomanconclusion(woman concreteelementb)
時,欣慰曰:愛情長跑路漫漫,婚姻保險保平安。", concreteelementb.gettype().name, this.gettype().name);}}
class objectstructure
//移除
public void detach(person element)
//檢視顯示
public void display(action visitor)}}
static void main(string args)
設計模式 訪問者模式
訪問者模式是一種資料操作與資料結構分離的設計模式,訪問者模式的基本想法是,軟體系統中擁有乙個由許多物件構成的 比較穩定的物件結構,這些物件的類都擁有乙個accept方法用來接受訪問者物件的訪問。訪問者是乙個介面,它擁有乙個visit方法,這個方法對訪問到的物件結構中不同型別的元素作出不同的處理。在物...
設計模式 訪問者模式
訪問者模式 visitor 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。例子 男人和女人在不同的狀態下會有不同反應,採用訪問者模式,可以增加狀態很方便 抽象狀態類 class action 男人反應 virtual void getwom...
設計模式 訪問者模式
在訪問者模式 visitor pattern 中,我們使用了乙個訪問者類,它改變了元素類的執行演算法。通過這種方式,元素的執行演算法可以隨著訪問者改變而改變。這種型別的設計模式屬於行為型模式。根據模式,元素物件已接受訪問者物件,這樣訪問者物件就可以處理元素物件上的操作。1 符合單一職責原則。2 優秀...