[問題] template 做 strategy pattern的問題
看板C_and_CPP作者Clangpp (Clang++)時間8年前發表 (2016/09/04 11:13), 8年前編輯推噓19(19推 0噓 24→)留言43則, 8人參與討論串1/4 (看更多)
事情是這樣的,小弟目前在工作上想要用
template 來實作strategy (因為自己在研究template的一些玩法,所以想要在工作上嘗試
順便利用它來避掉用virtual的成本)
下面有一個物件叫做verifier (驗證者) 是一個interface
底下會有好幾個他的division class 像是密碼驗證,智慧卡驗證,或是指紋驗證
然後各自的驗證再去實作他自己的東西
那其中有個function叫verify (密碼驗證就是丟密碼,智慧卡驗證要丟他的一些data
struct,而指紋驗證是要丟指紋的影像byte)
由於參數會不同,所以template有沒有什麼樣的手段可以讓他做到參數可變化??
特化?? 還是說我都統一丟void *進去 各自實作的function再去解讀??
以上問題有請解答 謝謝
--
C++是雙截棍,揮舞起來很強悍。
很吸引人,但需要你多年的磨練來掌握。
很多人希望改用別的武器。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.219.38
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1472987623.A.2F9.html
※ 編輯: Clangpp (118.166.219.38), 09/04/2016 19:15:45
※ 編輯: Clangpp (118.166.219.38), 09/04/2016 19:18:56
※ 編輯: Clangpp (118.166.219.38), 09/04/2016 19:19:35
推
09/04 19:32, , 1F
09/04 19:32, 1F
→
09/04 19:32, , 2F
09/04 19:32, 2F
推
09/04 19:34, , 3F
09/04 19:34, 3F
→
09/04 19:36, , 4F
09/04 19:36, 4F
推
09/04 19:41, , 5F
09/04 19:41, 5F
→
09/04 19:41, , 6F
09/04 19:41, 6F
推
09/04 19:46, , 7F
09/04 19:46, 7F
→
09/04 19:47, , 8F
09/04 19:47, 8F
那篇文章我看完了可能跟我想的東西不同 我想問的是
每個class的中的function變數不同時
要如何處理??
像
class passwordverfier
{
bool Verify(string Password);
}
class IDcardverfier
{
bool Verify(vector<byte> IDvalue);
}
第一層的interface有什麼方法可以讓這兩種 verify的參數都可以吃??
因為我本來的想法是這樣 通通改成 Verify的參數通通改成void *
讓各自class去轉成他們自己吃的驗證值 只是在介面的易用性上就不是很好
※ 編輯: Clangpp (118.166.219.38), 09/04/2016 20:19:23
※ 編輯: Clangpp (118.166.219.38), 09/04/2016 20:21:30
※ 編輯: Clangpp (118.166.219.38), 09/04/2016 20:27:17
推
09/04 20:57, , 9F
09/04 20:57, 9F
→
09/04 20:57, , 10F
09/04 20:57, 10F
→
09/04 20:57, , 11F
09/04 20:57, 11F
→
09/04 20:59, , 12F
09/04 20:59, 12F
→
09/04 21:00, , 13F
09/04 21:00, 13F
推
09/04 21:21, , 14F
09/04 21:21, 14F
→
09/04 21:23, , 15F
09/04 21:23, 15F
→
09/04 21:24, , 16F
09/04 21:24, 16F
推
09/04 21:25, , 17F
09/04 21:25, 17F
→
09/04 21:26, , 18F
09/04 21:26, 18F
→
09/04 21:27, , 19F
09/04 21:27, 19F
→
09/04 21:28, , 20F
09/04 21:28, 20F
推
09/04 21:36, , 21F
09/04 21:36, 21F
→
09/04 21:36, , 22F
09/04 21:36, 22F
推
09/04 21:40, , 23F
09/04 21:40, 23F
→
09/04 21:43, , 24F
09/04 21:43, 24F
推
09/04 21:50, , 25F
09/04 21:50, 25F
→
09/04 21:52, , 26F
09/04 21:52, 26F
推
09/04 21:56, , 27F
09/04 21:56, 27F
推
09/04 22:09, , 28F
09/04 22:09, 28F
→
09/04 22:13, , 29F
09/04 22:13, 29F
→
09/04 22:14, , 30F
09/04 22:14, 30F
→
09/04 23:31, , 31F
09/04 23:31, 31F
推
09/05 09:49, , 32F
09/05 09:49, 32F
推
09/05 09:54, , 33F
09/05 09:54, 33F
→
09/05 09:54, , 34F
09/05 09:54, 34F
推
09/05 22:19, , 35F
09/05 22:19, 35F
→
09/05 22:19, , 36F
09/05 22:19, 36F
推
09/07 12:18, , 37F
09/07 12:18, 37F
→
09/07 12:18, , 38F
09/07 12:18, 38F
→
09/07 12:19, , 39F
09/07 12:19, 39F
→
09/07 13:28, , 40F
09/07 13:28, 40F
推
09/07 14:41, , 41F
09/07 14:41, 41F
推
09/08 11:44, , 42F
09/08 11:44, 42F
推
09/08 11:47, , 43F
09/08 11:47, 43F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):