摘要:[大話設計模式] 重點筆記:基礎原則篇
前言:
在物件導向的學習之路上,我們學習什麼是封裝、繼承、多型,什麼是介面、抽象、泛型、事件與委
託。雖然會的很多,卻不一定代表能用得很好。學習設計模式是一個很好的機會來檢視一下這些「雞
絲」應該如何正確的搭配使用,來幫助我們的程式碼可以達到好維護、易擴展的目標。
這麼多設計模式之中,有一些共同需要遵守的原則,在此先整理出來:
單一職責原則
原文:就一個類別而言,應該只有一個引起它變化的原因。
心得:如果一個類別經過分析,有多於一個職責,就應該將其分離出來。
開放封閉原則
原文:軟體的實體(類別、模組、函數等)應該可以擴展,但是不可修改。
(Open for extension, closed for modification)
心得:在設計階段和開發初期,能盡量歸納/預測出可能會發生頻繁變化的種類,然後針對這些變化建立抽象來隔離之,那麼在這之後發生的變化,就能以不更動原程式碼,僅增加新程式碼來因應。
依賴倒轉原則
原文:抽象不應該依賴細節,細節應該依賴於抽象。
高層模組不應依賴低層模組,兩個都應該依賴抽象。
心得:撰寫程式時,針對抽象的類別或是介面來設計,而不是細節。那麼,不論高層模組或底層模組,都能更容易的被替換/複用。