作者FATCLOUD (A Cloud)
看板EE_DSnP
標題[問題] 小小技巧問題
時間Sun May 31 20:49:32 2009
老師好 我有個想法
在這個作業裡要用到一種功能
就是讀到 "and" 字樣就要 new 一個 CirAndGate
在這個作業裡的例子比較少
照理說用很多 if 或者用一個 switch 就能解決
可是為了程式架構可以日後修改的方便
我很想建一個像 map 的東西
就像這樣
map<string,func> S
這樣子當我有一大堆選項要 switch 然後執行函數的時候
就可以先用 map 找到應該執行的函數
再把參數傳進去
我覺得這樣的功能似乎挺不錯的
想問問看如果是老師會怎麼寫
=================== 以下是 OS ==================
感覺這個功能和 ref 的 command parser很像
印象中 ref 是用成 map<string,command*> 這種格式
然後在宣告物件
把物件指標存起來
執行時 map 出物件指標再 command->execute
但是 ref 的 command 有很多功能可以 -> 很多東西
而在這裡我只是想做一個特大的 switch
如果還為此寫好 class 以後再製造物件出來
程式裡就多了個要照顧的地方
這樣就會有點瑣碎十分討厭
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.218.75
1F:推 ric2k1:Sure, 你的 func 應該是指 functional pointer 或是 func 05/31 21:05
2F:→ ric2k1:object 吧? 只不過這裡要做的只是 new a gate, 這樣子做 05/31 21:06
3F:→ ric2k1:能不能有其他的好處? 05/31 21:07
4F:→ FATCLOUD:假如日後有其他的 gate 就可以繼續註冊進來 05/31 21:10
5F:→ FATCLOUD:不像 switch 一有新項目就要改 case 05/31 21:11
6F:→ FATCLOUD:一個小念頭而已啦 想知道有沒有漂亮的辦法做這件事 05/31 21:11
7F:推 ric2k1:嗯嗯, 我想差別是用 switch 的話 A 必須改 B 所寫的包含 05/31 21:13
8F:→ FATCLOUD:↑只是不喜歡為此再製造物件的做法 05/31 21:13
9F:→ ric2k1:switch 的 code, 而用 map 註冊的話加 gate type 可以拿 05/31 21:14
10F:→ ric2k1:.a 檔就好了... 05/31 21:15
11F:推 ric2k1:我想你說的是 map from string to functional pointer 05/31 21:15
12F:→ FATCLOUD:有 pointer 是可以直接指到 function 的嗎!!? 05/31 21:17
13F:推 ric2k1:大一計程應該有教吧? 螞蟻書講 function 的那一章! 05/31 21:33