[問題] 多執行緒中,程式架構的問題:彈性與簡潔
最近在寫的時候遇到些許瓶頸,
希望各位前輩可以提供一點經驗指點。
目前卡的比較久的是,
「程式的彈性」與「程式的簡潔」不太知道該怎麼抓平衡點。
用個例子來說明,
假設今天我有兩條thread,
一條抓奇摩氣象的北部地區,用classN包起來
一條抓奇摩氣象的南部地區,用classS包起來,
換句話說,今天我要抓北部,
我就用一個thread,叫這條thread使用classN中的參數與function。
而Class_N與Class_S中有部分function一模一樣,舉例:
ClassN:fun高溫 + fun降雨機率 + fun濕度
ClassS:fun高溫 + fun紫外線 + fun濕度
我有兩種做法
做法1:保持彈性
ClassN:抓溫度 + 抓降雨率 + 抓濕度
ClassS:抓溫度 + 抓紫外線 + 抓濕度
優點:
(1) 如果,南部跟北部的抓溫度方法不一樣,只要針對該class改
(2) Debug比較快速,因為不同thread分開的class,只要是南部有錯誤,針對南部查就好
缺點:
(1) 如果兩個都同時改變或都不改變,重複一樣的程式碼只是造成以後修改的麻煩。
如:南部北部的抓溫度方法有改變,改了南部卻忘了北部(漏掉),或要改兩次(重複)
做法2:保持簡潔
ClassN:ClassFun.抓溫度 + ClassFun.抓降雨率 + ClassFun.抓濕度
ClassS:ClassFun.抓溫度 + ClassFun.抓紫外線 + ClassFun.抓濕度
ClassFun:抓溫度 + 抓降雨機 + 抓濕度 + 抓紫外線
優點:
(1) 好維護,修改抓溫度或新增一個抓空氣乾淨度,兩個地區都可以適用
缺點:
(1) 無法快速的Debug,今天抓溫度出錯,我卻不清楚是南部的錯還是北部的錯。
(2) 南北部抓溫度方法改變,對ClassFun修改,修改後可能導致其他沒問題便有問題。
想請問各位前輩的意見與想法,
這困擾了我許久~"~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.117.37
推
12/11 20:53, , 1F
12/11 20:53, 1F
→
12/11 20:53, , 2F
12/11 20:53, 2F
推
12/11 23:42, , 3F
12/11 23:42, 3F
推
12/11 23:46, , 4F
12/11 23:46, 4F
→
12/12 11:38, , 5F
12/12 11:38, 5F
→
12/21 01:17, , 6F
12/21 01:17, 6F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章