[問題] 模式設計
大家好
小弟想詢問 "在不同情境下,要做部分不同的事情時,要怎麼分類會比較好"
這個問題問起來還蠻抽象的
所以用下列情境來描述:
----------
前情提要:
小弟最近在做 特徵比對 的 人機介面設計(GUI)
特徵比對 最簡單的講法就是 在一張白紙上,用黑筆寫上一個數字
然後找數字的輪廓,和輪廓的位置平均值 (重心),和比對相似度
輪廓 就是 List<PointF>
重心 就是 PointF
相似度 就是 Double
-----------
情境:
有三個UI畫面要呈現
分別是 移動平台校正、學習特徵、實物比對
在三個畫面中,都會有共同的行為,就是接收 特徵比對的EventCallback
UI畫面要根據特徵比對的結果做以下行為:
1. 校正畫面:
用紅色圓圈繪出輪廓,然後不標示重心位置
2. 學習畫面:
用黃色圓圈繪出輪廓,要用黃色十字線標示重心位置
3. 實物畫面:
如果夠相似,用綠色圓圈繪出輪廓,用綠色十字線標示重心位置。
如果不夠相似,就用紅色圓圈繪出輪廓,用紅色十字線標示重心位置。
因此我在三個頁面下的 callback function獨立寫了三段相似卻無法合併的程式碼
接著某一天,我的BOSS跟我說,為什麼要用圓圈繪輪廓,用點不是很好嗎?
然後我就要在三個獨立頁面分別改這三段程式碼
然後我就漏改了一個頁面
變成有些頁面用 圓形繪圖,有些用點繪輪廓
然後第二次DEMO時就很尷尬,因為我說 "我改完了"
但是在測試時,就被抓包有些地方沒改到
我覺得實在是 OOXX
這時,我朋友跟我說
那就把這三段程式碼提出來,用if else 判斷阿
這樣下次改時
就可以一起改了,多好?
即:
//繪十字中心時
if(校正)
else if(學習)
else if(比對)
//繪輪廓時
if(校正)
else if(學習)
else if(比對)
但我覺得這實在是併不起來
我的理由是這是三種頁面的不同行為
現在打散在各個頁面是很恰當的
如果集中管理
確實可以減少漏改的問題
但 ... 整個就是 覺得怪怪的
因為我最近在學模式設計時,就是希望把東西拆開來
但這想法根本就是把東西應試湊在一起阿...
所以想詢問板上有沒有大大能提供好建議呢?
舉例來說:
哪天被要求:
十字中心線,要縮小,或是十字中心線,重心的地方不要有線
或是 比對模式,要多繪出相同重心下,標準輪廓的樣貌
或是 在輪廓右下角,要添加上比對分數
等等之類的
改時要保持風格要一致的問題...
----------------
結論:
1. 三個頁面分開寫,改code時要改三個地方,會漏改
2. 三個頁面的callback合併,改code時,一次改全部,但多增if else
想詢問如果是你,你會怎麼做?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 221.169.231.173 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1576293178.A.51B.html
→
12/14 14:19,
5年前
, 1F
12/14 14:19, 1F
→
12/14 15:20,
5年前
, 2F
12/14 15:20, 2F
→
12/14 15:44,
5年前
, 3F
12/14 15:44, 3F
→
12/14 15:44,
5年前
, 4F
12/14 15:44, 4F
→
12/14 15:48,
5年前
, 5F
12/14 15:48, 5F
→
12/14 15:48,
5年前
, 6F
12/14 15:48, 6F
→
12/14 15:48,
5年前
, 7F
12/14 15:48, 7F
推
12/14 18:12,
5年前
, 8F
12/14 18:12, 8F
→
12/14 18:12,
5年前
, 9F
12/14 18:12, 9F
→
12/14 18:12,
5年前
, 10F
12/14 18:12, 10F
→
12/14 18:12,
5年前
, 11F
12/14 18:12, 11F
→
12/14 18:12,
5年前
, 12F
12/14 18:12, 12F
→
12/14 20:16,
5年前
, 13F
12/14 20:16, 13F
→
12/15 11:08,
5年前
, 14F
12/15 11:08, 14F
→
12/15 11:08,
5年前
, 15F
12/15 11:08, 15F
→
12/15 11:08,
5年前
, 16F
12/15 11:08, 16F
→
12/15 11:08,
5年前
, 17F
12/15 11:08, 17F
→
12/15 17:53,
5年前
, 18F
12/15 17:53, 18F
→
12/15 17:55,
5年前
, 19F
12/15 17:55, 19F
→
12/15 20:03,
5年前
, 20F
12/15 20:03, 20F
→
12/15 20:44,
5年前
, 21F
12/15 20:44, 21F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章