用抽象構建框架,用實現擴充套件細節
1、單一職責原則(srp)
核心思想:系統中每乙個物件都應該只有乙個單獨的職責,而所有物件所關注的就是自身指責的完成。2、黎克特制替換原則(lsp)srp就是我們所說的"高內聚、低耦合"
優點:消除耦合
核心思想:在任何父類出現的地方都可以用子類來替代3、依賴倒置原則(dip)lsp通俗的來講就是:子類可以擴充套件父類的功能,但不能改變父類原有的功能。它包含4層含義:
核心思想:要依賴於抽象,不要依賴於具體實現4、介面分離原則(isp)dip的意思是:在應用程式中,所有的類如果使用或依賴於其他的類,則都應該依賴於這些其他類的抽象類,而不是這些其他類的具體實現類。抽象層次應該不依賴於具體的實現細節,這樣才能保證系統的可復用性與可維護性。因此為實現這一原則,我們要在程式設計時針對介面程式設計,而不針對實現程式設計。
核心思想:不應該強迫客戶程式依賴它們不需要使用的方法5、迪公尺特原則(lod)-最少知識原則(lkp)isp的意思是:乙個介面應該只提供一種對外的功能,不應該把所有的操作都封裝到乙個介面中(這裡的介面分兩種:物件介面(類),類介面(class inte***ce),p30)。
也就是說,isp要求在乙個模組中應該只依賴它需要的介面,以保證介面的小純潔。而且需要介面盡量小,即設計介面時應盡量細化,不要定義太臃腫的介面。
與單一職責原則比較:
核心思想:乙個物件應當對其他物件盡可能少的了解。即降低物件之間的耦合6、開閉原則(ocp)更簡單的定義:只與直接的朋友通訊--《觀察者模式?>
lod的核心觀念是類間解耦,弱耦合。只有弱耦合了以後,類的復用性才可以提高
過分的使用迪公尺特原則,會產生大量的中介和傳遞類,導致系統複雜度變大。所以在採用迪公尺特法則時要反覆權衡,既做到結構清晰,又要高內聚低耦合
核心思想:乙個物件應對擴充套件開放,對修改關閉ocp的意思是:軟體需要變化時,盡量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已有的**。也就是說,開發人員一旦寫出了可以執行的**,就不應去改變它,而是要保證它能一直執行下去,如何做到這一點呢?這就需要借助抽象與多型,即把可能變化的內容抽象出來,從而使抽象的部分是相對穩定的,而具體的實現層則是可以改變和擴充套件的。
開閉原則算是前5種原則的乙個抽象總結,前5種是開閉原則的一些具體實現。
架構中的設計原則
設計原則共有7條,分別是 高內聚,低耦合。每個類應該只有乙個職責,對外只能提供一種功能,而引起類變化的也應該只有乙個。好處 消除耦合,減少因需求變化引起 僵化的難堪局面。在任何父類出現的地方都可以用子類來替代。同乙個繼承體系中的物件應該有共同的行為特徵。一 子類必須完全實現父類的方法 二 子類有自己...
設計模式中的設計原則
最近在看 head first 設計模式 先一步一步總結點知識。設計原則 含義 開 閉 原則 ocp 軟體實體應當對擴充套件開放,對修改關閉,即軟體實體應當在不修改的前提下擴充套件。黎克特制代換原則 lsp 父類能出現的地方都可以替換為子類,但反之不一定。單一職責原則 srp 乙個類只負責一項職責。...
設計模式筆記 設計模式原則總結
設計模式基本原則總結 1.單一職責原則 srp 就乙個類而言,應該僅有乙個引起它變化的原因。2.開放 封閉原則 是說軟體實體 類 模組 函式等等 應該可以擴充套件,但是不可修改。意思是對於擴充套件是開放的 open for extension 對於更改是封閉的 closed for modifica...