Re: [閒聊] OOP小評
※ 引述《csfgsj (Lazy bone)》之銘言:
: ※ 引述《flyfoxy (飛狐)》之銘言:
: : 或者說過多的繼承會導致class十分龐大臃腫
: : 或者說資料和程序難以分開 導致十分難trace
: : 我也曾經在如何抽離介面和演算法之間徬徨
: 這句話非常有意思,可以詳細說明嗎?
就是當你接手一隻程式 他有UI也有演算法
演算法是繪圖的演算法 每次視窗重繪就要呼叫它
但很多時機都有可能導致視窗重繪 而且要繪的東西都不相同
他全部給你寫在OnDraw()裡面
演算法也沒有封裝過
你看到的就是一堆透過描點來畫線 畫圓 畫多邊形的一連串指令
全部都用if else 分割這些畫型狀的描點指令
然後A處要畫圓,B處也要,C處也要
到處都是類似的程式碼 參數全部都是pointer丟來丟去
有的會變更值回傳 有的不會 有的根本沒用到
我一開始不知道重構這件事情
光看懂這幾串「描點」指令是畫圓還是畫方就快暈了
然後要再去trace什麼時機要畫圓還是畫方
你說你不重構不把界面跟演算法拆開就直接改
過了一段日子 根本不會記得那是啥鬼XD
又要重新看一遍
: : 甚至其實是coding習慣的問題,因為一開始架構就沒有寫清楚
: : 或是時間不夠流程和資料就混成一堆,程式能動就好,
: 沒有一個程式是一開始就可以把所有的事件都想清楚的
: 包括架構
: 修修改改一定會碰到
: : 或是因為後續的需求變更使得class間的耦合性變得更複雜
: : 所以當你程式越寫越大,你就越早面臨「重構」這件事情
: : 上述的問題透過「重構」其實都可以得到解決,
: 重構感覺就是在鬧革命
: 一個一天到晚在鬧革命的地方,您說會繁榮發展嗎?n
重構也是有範圍力度的分別的
他並不是「打掉重刻」這種革命
也沒有人一天到晚都在重構
<Refactoring>這本書
他有建議你適合重構的時機
你可以自行決定需不需要重構
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.87.85.162
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1425289262.A.3F1.html
推
03/02 17:44, , 1F
03/02 17:44, 1F
推
03/02 19:02, , 2F
03/02 19:02, 2F
推
03/02 20:53, , 3F
03/02 20:53, 3F
→
03/02 21:37, , 4F
03/02 21:37, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
閒聊
-8
31
以下文章回應了本文:
閒聊
1
5
完整討論串 (本文為第 8 之 43 篇):
閒聊
3
26
閒聊
0
2
閒聊
1
2
閒聊
6
21
閒聊
3
5
閒聊
1
1
閒聊
-8
31
閒聊
3
4
閒聊
1
5
閒聊
6
17