讀《大話設計模式》和《head first 設計模式》心得
1.物件導向的程式設計,並不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的物件的抽象集合才是類。
2.如果你能夠想到多於一個的動機去改變一個類,那麼這個類就具有多於一個的職責。就一個類而言,應該僅有一個引起它變化的原因。
3.開放-封閉原則是物件導向設計的核心所在。遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護、可擴充套件、可複用、靈活性好。開發人員應該僅對程式設計師呈現出頻繁變化的那些部分做出抽象,然而,對於應用程式中每個部分都刻意地進行抽象同樣不是一個好主意。拒絕不成熟的抽象和抽象本身一樣重要。面對需求,對程式的改動是通過增加新程式碼進行的,而不是更改現有的程式碼。
4.里氏代換原則:子型別必須能夠替換掉它們的父型別。只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正被複用,而子類也能夠在父類的基礎上增加新的行為。(企鵝不能繼承鳥類!)
5.迪米特法則(最少知識原則):在類的結構設計上,每一個類都應當儘量降低成員的訪問許可權,也就是說,一個類包裝好自己的private狀態,不需要讓別的類知道的欄位或行為不要公開。如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用,可以通過第三方轉發這個呼叫。也就是說,不要對具體的實現程式設計,應該對介面程式設計。
6.合成/聚合利用原則:儘量使用合成/聚合,儘量不要使用類繼承。繼承是一種強耦合,組合是一種弱耦合。
7.每個地方都採用開放-關閉原則,是一種浪費,也沒必要,還會導致程式碼變得複雜且難以理解。我們需要把注意力集中在設計中最有可能改變的地方,然後應用開發-關閉原則。這牽涉到設計OO系統的經驗,和對你工作領域的瞭解。
8.要依賴抽象,不要依賴具體類。下面的指導方針,能幫你避免在OO設計中違反信賴倒置原則:
1>變數不可以持有具體類的引用;
2>不要讓類派生自具體類;
3>不要覆蓋蕨類中已實現的方法。
相關文章
- 《Head First 設計模式》:策略模式設計模式
- 《Head First 設計模式》:與設計模式相處設計模式
- Head First設計模式讀書筆記設計模式筆記
- 《Head First 設計模式》:單件模式設計模式
- 《Head First 設計模式》:外觀模式設計模式
- 《Head First 設計模式》:觀察者模式設計模式
- Head First 設計模式(1)-----策略模式設計模式
- 《Head First 設計模式》:剩下的模式設計模式
- 《Head First 設計模式》:模板方法模式設計模式
- 《Head First 設計模式》:狀態模式設計模式
- 《Head First 設計模式》:組合模式設計模式
- 《Head First 設計模式》:工廠方法模式設計模式
- 【設計模式】設計模式(一)-- 大話設計模式讀書筆記設計模式筆記
- Head First 設計模式(2)---觀察者(Observer)模式設計模式Server
- Head First 設計模式(3)----裝飾者模式設計模式
- Head First 設計模式 —— 13. 代理 (Proxy) 模式設計模式
- Head First 設計模式 —— 14. 複合 (Compound) 模式設計模式
- Head First 設計模式 —— 09. 模版方法 (Template Method) 模式設計模式
- [head first 設計模式] 第一章 策略模式設計模式
- [head first 設計模式]第二章 觀察者模式設計模式
- 大話設計模式設計模式
- 大話設計模式—命令模式設計模式
- 【大話設計模式】——代理模式設計模式
- 【大話設計模式】——策略模式設計模式
- Head First 設計模式筆記 3.裝飾者模式設計模式筆記
- 關於Head First設計模式中的策略模式的困惑設計模式
- 大話設計模式 讀書筆記設計模式筆記
- 大話設計模式讀書筆記設計模式筆記
- 大話設計模式讀書筆記6——代理模式設計模式筆記
- 大話設計模式讀書筆記2——策略模式設計模式筆記
- 大話設計模式:工廠模式設計模式
- 【大話設計模式】—— 原型模式設計模式原型
- 【大話設計模式】——裝飾模式設計模式
- 【大話設計模式】—— 模板方法模式設計模式
- 大話設計模式—組合模式設計模式
- 大話設計模式—橋接模式設計模式橋接
- 【大話設計模式】——淺談設計模式基礎設計模式
- 大話設計模式讀書筆記4——模版方法模式設計模式筆記