天天看點

程式設計原則及設計模式詳解

http://c.biancheng.net/view/1324.html

1.開閉原則:對擴充開放,對修改關閉;

開閉原則的含義是:當應用的需求改變時,在不修改軟體實體的源代碼或者二進制代碼的前提下,可以擴充子產品的功能,使其滿足新的需求。

2.裡氏替換原則:繼承必須確定超類所擁有的性質在子類中仍然成立;

裡氏替換原則通俗來講就是:子類可以擴充父類的功能,但不能改變父類原有的功能。

3.依賴倒置原則:高層子產品不應該依賴低層子產品,兩者都應該依賴其抽象;抽象不應該依賴細節,細節應該依賴抽象;

依賴倒置原則是實作開閉原則的重要途徑之一,它降低了客戶與實作子產品之間的耦合。

4.單一職責原則:一個類應該有且僅有一個引起它變化的原因,否則類應該被拆分;

一個職責的變化可能會削弱或者抑制這個類實作其他職責的能力;

當用戶端需要該對象的某一個職責時,不得不将其他不需要的職責全都包含進來,進而造成備援代碼或代碼的浪費。

5.接口隔離原則:要為各個類建立它們需要的專用接口,而不要試圖去建立一個很龐大的接口供所有依賴它的類去調用;

單一職責原則注重的是職責,而接口隔離原則注重的是對接口依賴的隔離。

單一職責原則主要是限制類,它針對的是程式中的實作和細節;接口隔離原則主要限制接口,主要針對抽象和程式整體架構的建構。

6.最少知識原則:如果兩個軟體實體無須直接通信,那麼就不應當發生直接的互相調用,可以通過第三方轉發該調用。其目的是降低類之間的耦合度,提高子產品的相對獨立性。

7.組合/聚合複用原則:它要求在軟體複用時,要盡量先使用組合或者聚合等關聯關系來實作,其次才考慮使用繼承關系來實作。