【設計模式——六原則】

我是太陽啦啦啦發表於2016-03-12

前言:

在學習設計模式的時候,貫穿二十三個設計模式的始終——設計模式六原則,單一職責原則、開放—封閉原則、依賴倒轉原則、迪米特原則、里氏代換原則、合成—聚合複用原則。六大原則,在設計模式的比賽中充當的裁判員的角色。

核心:

·單一職責原則


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.注意

優先使用物件的合成和聚合。

總結:
設計模式六原則,體現在程式的設計當中,在程式設計的過程之中,考慮原則,使得自己設計的程式碼程式設計的更好!

相關文章