1.開發-封閉原則,是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改,這個原則其實是有兩個特徵,乙個是對於擴充套件是開放的,另乙個是說對於更改是封閉的。
2.開發-封閉原則的意思就是說,你設計的時候,時刻要考慮,盡量讓這個類足夠好,寫好了就不要去修改了,如果新需求來了,我們增加一些類就完事了,原來的**能不動則不動了。但是無論模組是多麼的封閉,都會存在一些無法封閉的變化,既然不可能完全封閉, 設計人員必須對於他設計的模組應該對哪種變化封裝做出選擇,他必須先猜測出最有可能發生的變化種類,然後構造抽象來隔離那些變化。
3.猜測軟體程式可能發生的變化,猜對了是成功,猜錯了,就把本該簡單的設計做的複雜了,雖然很難猜測,但我們卻可以在發生小變化時,就及早去想辦法應對發生更大的變化可能,也就是說,等到變化發生時立即採取行動。在我們最初編寫**時,假設變化不會發生。當變化發生時,我們就建立抽象來隔離以後發生的同類變化。
4.面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。這就是開放-封閉原則的精神所在。
5.我們希望的是開發工作展開不久就知道可能發生的變化,查明可能發生的變化所等待的時間越長,要建立正確的抽象就越困難。就比如加減法運算在很多地方應用了,再考慮抽象、考慮分離就很困難。
6.開發-封閉原則是物件導向設計的核心所在,遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護,可擴充套件,可復用,靈活性好。開發人員應該僅對程式中呈現出頻繁變化的那些部分做出抽象,然而,對於應用程式中每個部分都刻意地進行抽象同樣不是乙個好主意。拒絕不成熟的抽象和抽象本身一樣重要。
《大話設計模式》閱讀筆記
這一章用編寫乙個計算器作為例子。講述了物件導向的三個最重要的方面,即封裝 繼承和多型。我們寫程式不僅僅只是得到乙個正確答案,這是遠遠不夠的,還需要考慮其復用性 可擴充套件性 易維護性,從而達到程式設計的藝術。之前做的離心管的專案,把所有東西都放在乙個標頭檔案加原始檔裡頭了,這樣非常不好找,另外就是當...
大話設計模式閱讀筆記 裝飾模式
1.裝飾模式 decorator 動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。component 是定義乙個物件介面,可以給這些物件動態的新增職責,concretecomponent是定義了乙個具體的物件,也可以給這個物件新增一些職責。decorator,裝飾抽象...
大話設計模式閱讀筆記 外觀模式
外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。uml圖 適用場合 這要分三個階段來說,首先,在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層架構,就需要考慮在資料訪問層和業務邏輯層 業務邏輯層和表示層的層...