※ 引述《Clangpp (Clang++)》之銘言:
: 事情是這樣的,小弟目前在工作上想要用
: template 來實作strategy (因為自己在研究template的一些玩法,所以想要在工作上嘗試
: 順便利用它來避掉用virtual的成本)
: 下面有一個物件叫做verifier (驗證者) 是一個interface
: 底下會有好幾個他的division class 像是密碼驗證,智慧卡驗證,或是指紋驗證
: 然後各自的驗證再去實作他自己的東西
: 那其中有個function叫verify (密碼驗證就是丟密碼,智慧卡驗證要丟他的一些data
: struct,而指紋驗證是要丟指紋的影像byte)
: 由於參數會不同,所以template有沒有什麼樣的手段可以讓他做到參數可變化??
: 特化?? 還是說我都統一丟void *進去 各自實作的function再去解讀??
: 以上問題有請解答 謝謝
不好意思,小弟我衍伸出一些疑問。用Template實作Strategy Pattern是不是有點失
去他最大的好處?? 因為畢竟這個模式最大的賣點就是run time下可以一個介面變換
不同的演算法。那麼用template的用途是? 我為什麼不直接去call那個演算法的物件
就好了?? 還要透過你template再一層。 我看Gof的書上說Strategy Pattern還有另外一點
,就是你如果演算法有用到不想給人家知道的資料結構或是機密。那可以在用他包一層
。可是感覺不出來這樣就可以不讓人家看到耶...
以上問題懇請回答
謝謝