【設計模式】面相對象設計原則

面相對象設計原則(1)

依賴倒置原則(DIP)

高層模塊(穩定)不應該依賴於低層模塊(變化),二者都應該依賴於抽象(穩定)。

抽象(穩定)不應該依賴於實現細節(變化),實現細節應該依賴於抽象(穩定)。

 

面向對象設計原則(2)

開放封閉原則(OCP)

對擴展開放,對更改封閉。

類模塊應該是可擴展的,但是不可修改。

 

面向對象設計原則(3)

單一職責原則(SRP)

一個類應該僅有一個引起它變化的原因。

變化的方向隱含着類的責任。

 

面向對象設計原則(4)

Liskov替換原則(LSP)

子類必須能夠替換它們的基類(IS-A)。

繼承表達類型抽象。

 

面向對象設計原則(5)

接口隔離原則(ISP)

不應該強迫客戶程序依賴它們不用的方法。

接口應該小而完備。

 

面向對象設計原則(6)

優先使用對象組合,而不是類繼承

類繼承通常爲“白箱複用”,對象組合通常爲“黑箱複用”

繼承在某種程度上破壞了封裝性,子類父類耦合度高。

而對象組合則只要求被組合的對象具有良好定義的接口,耦合度低。

 

面向對象設計原則(7)

封裝變化點

使用封裝來創建對象之間的分界層,讓設計者可以在分界的一側進行修改,而不會對另一側產生不良的影響,從而實現層次間的鬆耦合。

 

面向對象設計原則(8)

不將變量類型聲明爲某個特定的具體類,而是聲明爲某個接口。

客戶程序無需獲知對象的具體類型,只需要知道對象所具有的接口。

減少系統彙總各部分的依賴關係,從而實現“高內聚,鬆耦合“的類型設計方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章