抽象化是所有重構技巧的根基。何謂抽象化?抽象化指的是一段程式碼不被當下的特殊狀態綁住,單純只看業務邏輯,抽象化也是一個把『不同』與『相同』分離出來的技巧。
例如在影片中,我們試著把 Base Game 與 Free Game 中一樣的部分抽出來,留不一樣的部分待注入。
抽象化是一件很重要的事,如果各位仔細去看重構技巧與設計模式,其實這些技巧與模式用得好不好,差別就在於你抽象化過程『抽』得乾不乾淨。
甚至,當你抽象化做得好,耦合與內聚抓準,這時你程式內重複性會被壓在一個可控程度內,這時是不是設計模式也已經沒關係了。
設計模式是一套在特定場景可以套用來解決特定問題的方法集。為什麼說『特定』,主要是學習設計模式後很容易一不小心就把模式套用在不適合的地方,乾淨不成,反而造成後續維護的困擾。
因此,學習設計模式不能只學模式,還要連場景一起學才對。
如果發現這個場景遇到的問題不是當初這個模式想解決的問題,那麼硬著頭皮套也只是徒增複雜的
度而已,不可不慎。