設計模式學習筆記--面向對象設計原則

設計模式學習筆記–面向對象設計原則

面向對象設計原則

單一職責原則

定義

百度定義

單一職責原則(SRP:Single responsibility principle)又稱單一功能原則,面向對象五個基本原則(SOLID)之一。它規定一個類應該只有一個發生變化的原因。該原則由羅伯特·C·馬丁(Robert C. Martin)於《敏捷軟件開發:原則、模式和實踐》一書中給出的。馬丁表示此原則是基於湯姆·狄馬克(Tom DeMarco)和Meilir Page-Jones的著作中的內聚性原則發展出的。
所謂職責是指類變化的原因。如果一個類有多於一個的動機被改變,那麼這個類就具有多於一個的職責。而單一職責原則就是指一個類或者模塊應該有且只有一個改變的原因。

開閉原則

定義

百度定義

開閉原則(OCP:Open Close Principle)是面向對象設計中“可複用設計”的基石,是面向對象設計中最重要的原則之一,其它很多的設計原則都是實現開閉原則的一種手段。

軟件實體應當對擴展開放,對修改關閉.

遵循開閉原則設計出的模塊具有兩個主要特徵:

  1. 對於擴展是開放的(Open for extension)。這意味着模塊的行爲是可以擴展的。當應用的需求改變時,我們可以對模塊進行擴展,使其具有滿足那些改變的新行爲。也就是說,我們可以改變模塊的功能。
  2. 對於修改是關閉的(Closed for modification)。對模塊行爲進行擴展時,不必改動模塊的源代碼或者二進制代碼。模塊的二進制可執行版本,無論是可鏈接的庫、DLL或者.EXE文件,都無需改動。

里氏替換原則

定義

百度定義

里氏替換原則,OCP作爲OO的高層原則,主張使用“抽象(Abstraction)”和“多態(Polymorphism)”將設計中的靜態結構改爲動態結構,維持設計的封閉性。“抽象”是語言提供的功能。“多態”由繼承語義實現。

里氏替換原則(Liskov Substitution Principle LSP)面向對象設計的基本原則之一。里氏替換原則中說,任何基類可以出現的地方,子類一定可以出現。 LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行爲。

依賴倒轉原則

定義

百度定義

依賴倒置原則

  1. 高層次的模塊不應該依賴於低層次的模塊,他們都應該依賴於抽象。
  2. 抽象不應該依賴於具體實現,具體實現應該依賴於抽象。

依賴倒置原則(Dependence Inversion Principle)是程序要依賴於抽象接口,不要依賴於具體實現。簡單的說就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊間的耦合。

接口隔離原則

定義

百度定義

客戶端不應該依賴它不需要的接口;一個類對另一個類的依賴應該建立在最小的接口上。

ISP–Interface Segregation Principle

使用多個專門的接口比使用單一的總接口要好。

一個類對另外一個類的依賴性應當是建立在最小的接口上的。

一個接口代表一個角色,不應當將不同的角色都交給一個接口。沒有關係的接口合併在一起,形成一個臃腫的大接口,這是對角色和接口的污染。

“不應該強迫客戶依賴於它們不用的方法。接口屬於客戶,不屬於它所在的類層次結構。”這個說得很明白了,再通俗點說,不要強迫客戶使用它們不用的方法,如果強迫用戶使用它們不使用的方法,那麼這些客戶就會面臨由於這些不使用的方法的改變所帶來的改變。

合成複用原則

定義

定義

合成複用原則又稱爲組合/聚合複用原則(Composition/Aggregate Reuse Principle, CARP),其定義如下:
合成複用原則(Composite Reuse Principle, CRP):儘量使用對象組合,而不是繼承來達到複用的目的。

迪米特法則

定義

迪米特法則來自於1987年美國東北大學(Northeastern University)一個名爲“Demeter”的研究項目。迪米特法則又稱爲最少知識原則(LeastKnowledge Principle, LKP),其定義如下:

迪米特法則(Law of Demeter, LoD):一個軟件實體應當儘可能少地與其他實體發生相互作用。

如果一個系統符合迪米特法則,那麼當其中某一個模塊發生修改時,就會盡量少地影響其他模塊,擴展會相對容易,這是對軟件實體之間通信的限制,迪米特法則要求限制軟件實體之間通信的寬度和深度。迪米特法則可降低系統的耦合度,使類與類之間保持鬆散的耦合關係。

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