【設計模式——六原則】
前言:
在學習設計模式的時候,貫穿二十三個設計模式的始終——設計模式六原則,單一職責原則、開放—封閉原則、依賴倒轉原則、迪米特原則、里氏代換原則、合成—聚合複用原則。六大原則,在設計模式的比賽中充當的裁判員的角色。
核心:
·單一職責原則
1.定義
就一個類而言,應該僅有一個引起它變化的原因。2.例項
手機職責過多,延誤拍攝UFO。3.注意
程式設計時,在類的職責上多思考,做到單一原則,這樣的程式碼才是易擴充套件、易維護、易複用,靈活多樣。·開放—封閉原則
1.定義
是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。
特徵:
對於擴充套件是開放的!
對於更改是封閉的!
面對需求的更改,保持相對穩定,使軟體不斷更新。——開發—封閉原則的啟示。
2.例項
對於按時上班,員工遲到現象,解決問題的關鍵:對工作時間和業績成效的修改關閉,對時間制度擴充套件開放。
3.注意
開放—封閉原則是物件導向設計的核心,絕對的封閉是不存在的,我們在設計的時候,時刻考慮讓這個類足夠好。在面對需求時,對程式的改動是增加新程式碼,而不是更改先有程式碼。
·依賴倒轉原則
1.定義
高層模組不依賴低層模組,兩個都應該依賴抽象
抽象不應該依賴細節,細節應該依賴抽象
2.例項
電腦的主機板、CPU、記憶體等都是針對介面程式設計,如果針對實現程式設計,記憶體需要對應品牌的主機板,若換記憶體就要換對應的主機板。
3.注意
針對介面程式設計,不要對實現程式設計
·迪米特原則
1.定義
也叫最少知識法則。如果兩個類彼此不需要直接通訊,那麼這兩個類,就不應當發生直接的相互作用。如果其中一個類需要呼叫另一個類的某一個方法的話,可以通過第三者轉達這個呼叫。
2.例項
在公司,自己電腦出現了問題直接找IT部的主管,而不需要和公司的其他員工聯絡,主管會派人員前來維修。
3.注意
強調類之間的鬆耦合
·里氏轉換原則
1.定義
子型別必須能夠替換掉它們的父型別。
使繼承複用成了可能。
2.例項
貓繼承動物,擁有動物吃、跑、叫等行為,如果想要一個狗、牛等,除了更改例項化,其他地方不需要改變。
3.注意
子類繼承父類所有非Private的屬性和行為。
·合成—聚合複用原則
1.定義
儘量使用合成/聚合,儘量不要使用類繼承。
·聚合:是一種弱的擁有關係,A物件包含B物件,但是B不是A的一部分
·合成:是一種強的擁有關係,體現了嚴格的整體和部分之間的關係,部分和整體的生命週期一樣。
2.注意
優先使用物件的合成和聚合。
總結:相關文章
- 設計模式六大原則(六)----開閉原則設計模式
- 設計模式六大設計原則設計模式
- 設計模式-六大設計原則設計模式
- 設計模式-六大原則設計模式
- 設計模式六大原則設計模式
- 設計模式——六大原則設計模式
- 【設計模式 Android】設計模式六大原則設計模式Android
- 設計模式六大原則(6):開閉原則設計模式
- 設計模式之六大原則設計模式
- Java設計模式六大原則Java設計模式
- 設計模式的六大原則設計模式
- 設計模式六大原則(四)----介面隔離原則設計模式
- 設計模式六大原則(2):里氏替換原則設計模式
- 設計模式六大原則(4):介面隔離原則設計模式
- 設計模式六大原則(3):依賴倒置原則設計模式
- 軟體六大設計原則和設計模式設計模式
- Python設計模式六大原則!Python設計模式
- 設計模式六大原則詳解設計模式
- 快速理解 設計模式六大原則設計模式
- 設計模式六大原則(二)----裡式替換原則設計模式
- 設計模式六大原則(一)----單一職責原則設計模式
- 設計模式六大原則(1):單一職責原則設計模式
- 設計原則 設計模式設計模式
- 設計模式 - 設計原則設計模式
- 【設計模式】設計原則設計模式
- 設計模式之六大原則(簡介)設計模式
- 設計模式之六大原則與抽象設計模式抽象
- 設計模式必備知識點---六大設計原則設計模式
- 六大設計原則
- 設計模式六大原則(五)----迪米特法則設計模式
- 設計模式六大原則(5):迪米特法則設計模式
- 設計模式的設計原則設計模式
- 聊一聊設計模式(一)-- 六大原則設計模式
- 設計模式的分類和六大原則設計模式
- 設計模式(一)——物件導向六大原則設計模式物件
- Javascript 設計模式之設計原則JavaScript設計模式
- JavaScript設計模式(一)設計原則JavaScript設計模式
- 設計模式(07)——設計原則(2)設計模式