下面的幾個設計模式,我認為是乙個設計模式中的規則,
一:開放封閉原則
1、對這個原則有兩個特徵『對擴充套件是開放的(open for extension)』,另乙個是說『對於更改是封閉的(closed for modification)』。
2、開放封閉原則的目的是,讓軟體對於新的需求的改變可以保持相對的穩定。
3、乙個模組在封閉,都會存在一些無法封閉的地方,我們必須對於那些模組應該封閉掉的模組進行閉掉,對那些些無法封閉的模組、最容易變化的模組,進行構造抽象,從而達到隔離、擴充套件的目的。
4、比如寫乙個加法的程式,開發人員把他寫到了乙個client類裡面,當要加乙個減法的的時候,如果把這個減法的方法,放入client類裡面,就違背了「開放-封閉原則」,於是你就要重構程式,寫乙個operation類,通過一些物件導向的手段如繼承,多型來隔離具體的,加法,減法,乘法,除法,的子類即可,減少這些方法與client的耦合,需求依然滿足還可以應對變化,面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。
6、「開放封閉原則」是物件導向的核心所在,遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是維護、可擴充套件、可復用、靈活性好,開發人員應該僅對程式出現頻繁變化的那些部分做出抽象,然而對於程式的每乙個地方都進行抽象並不好,拒絕不成熟的抽象和抽象本身同樣重要。
二:單一職責原則
1、就是乙個類而言,應該僅有乙個引起它變化的原因。
2、如果乙個類承載的職責過多,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力,這種耦合會導致脆弱的設計,當變化發生時,設計會遭到意想不到的破壞
三:依賴倒轉原則
1、高層模組不應該依賴低層 模組,兩個都應該依賴抽象
2、抽象不應該依賴細節,細節應該依賴抽象
四:黎克特制代換原則
1、乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且察覺不出父類物件和子類物件的區別,也就是說,在軟體裡面,把父類替換成他的子類,程式的行為沒有變化
2、子類必須能夠替換掉它們的父型別
3、只有父類能夠完全替換子類的時候,父類才能被真正的復用,子類也能夠在父類的基礎上增加新的行為
所有內容來自,《大話設計模式》
設計模式之基本原則
單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其它職責能力。這種耦合會導制脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙...
設計模式之基本原則
設計模式共三大型別,共23種 建立型 和物件的建立有關,涉及到物件例項化的方式 單例模式 簡單工廠模式 工廠模式 抽象工廠 建造者模式 原型模式 結構型 如何組合類和物件以獲得更大的結構 模式 裝飾模式 介面卡模式 組合模式 橋接模式 外觀模式 享元模式 行為型 用來對類和物件怎麼互動和怎麼分配職責...
設計模式基本原則
設計模式基本原則 開 閉 原則 open closed principle,或者ocp 原文 software entities should be open for extension,but closed for modification.解釋 乙個軟體實體應當對擴充套件開放,對修改關閉。黎克特...