※ 引述《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还有另外一点
,就是你如果算法有用到不想给人家知道的资料结构或是机密。那可以在用他包一层
。可是感觉不出来这样就可以不让人家看到耶...
以上问题恳请回答
谢谢