用C 實現Visitor模式

2021-04-01 05:31:35 字數 579 閱讀 6870

visitor模式:表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。

public abstract class pet

public class cat:pet

public string state

}public override void accept(visitor v)

}public class dog:pet

public string state

}public override void accept(visitor v)

}public inte***ce visitor

public class visitor1:visitor

}public void visitdog(dog d)}}

public class visitor2:visitor

}public void visitdog(dog d)}}

public class test_visitor

}以後還可以定義visitor3等等,對cat和dog做不同的操作,但是不用修改cat和dog

Visitor設計模式

物件導向系統的開發和設計過程,經常會遇到一種情況就是需求變更 requirement changing 經常做好的乙個設計 實現了乙個系統原型,客戶又會有了新的需求。因此不得不去修改已有的設計,最常見就是解決方案就是給已經設計 實現好的類新增新的方法去實現客戶新的需求,這樣就陷入了設計變更的夢魘 不...

Visitor模式小節

今天看scott meyers的 my most important c aha moments.ever 這篇文章 http www.artima.com cppsource top cpp aha moments.html 裡面有一點 understanding what problem vis...

visitor 訪問模式

採用 雙重委派 方式,使訪問者和被訪問物件進行隔離。有點難理解。它有一定的應用侷限性,訪問者和被訪問者應該可被列舉,結構相對固定。比如說 運算子處理與資料結構的關係。運算子 可列舉,型別如string,int object也是可以列舉的 我們以處理運算表示式為例,來寫個例子,只涉及 型別只涉及int...