30秒到達(dá)戰(zhàn)場
2019-03-01 10:55:50
一種通過硬件設(shè)備的數(shù)據(jù)用了特殊格式,前一段是id,后一段是數(shù)據(jù),
前面一段,代表它是一段類型為A, B, C等等哪一種類型的數(shù)據(jù)。
根據(jù)前面的類型,我們?nèi)『竺嬷械哪硯孜唬鏏類型我們需要數(shù)據(jù)取數(shù)據(jù)的1-3位,B類型則需要第20和第22位。
現(xiàn)在設(shè)計(jì)的時(shí)候只需要能接受a類和b類就行了,但是未來想要接受c類, d類等等,同時(shí)對數(shù)據(jù)進(jìn)行的操作也不同,比如a類需要把1-3位都乘二,b類第二十位加1,第二十二位不變z
問題是應(yīng)該怎么樣設(shè)計(jì),未來拓展的時(shí)候方便呢?比如我想支持d類,不用重寫代碼....
5 回答

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
應(yīng)該把數(shù)據(jù)協(xié)議格式規(guī)定好:例如:高3位代表類型,中間2位代表協(xié)議版本,后面代表數(shù)據(jù)。
協(xié)議規(guī)定好后,通過模板方法來處理,將具體解析放到子類,通用的放到父類。
這樣在擴(kuò)展時(shí),不需要改動(dòng)原有代碼,只需要寫新的實(shí)現(xiàn)就可以。
添加回答
舉報(bào)
0/150
提交
取消