設計模式之開發-基本原則
下面的幾個設計模式,我認為是一個設計模式中的規則,
一:開放封閉原則
1、對這個原則有兩個特征‘對擴展是開放的(Open for extension)’,另一個是說‘對于更改是封閉的(Closed for modification)’。
2、開放封閉原則的目的是,讓軟件對于新的需求的改變可以保持相對的穩定。
3、一個模塊在封閉,都會存在一些無法封閉的地方,我們必須對于那些模塊應該封閉掉的模塊進行閉掉,對那些些無法封閉的模塊、最容易變化的模塊,進行構造抽象,從而達到隔離、擴展的目的。
4、比如寫一個加法的程序,開發人員把他寫到了一個Client類里面,當要加一個減法的的時候,如果把這個減法的方法,放入Client類里面,就違背了“開放-封閉原則”,于是你就要重構程序,寫一個Operation類,通過一些面向對象的手段如繼承,多態來隔離具體的,加法,減法,乘法,除法,的子類即可,減少這些方法與Client的耦合,需求依然滿足還可以應對變化,面對需求,對程序的改動是通過增加新代碼進行的,而不是更改現有的代碼。
6、“開放封閉原則”是面向對象的核心所在,遵循這個原則可以帶來面向對象技術所聲稱的巨大好處,也就是維護、可擴展、可復用、靈活性好,開發人員應該僅對程序出現頻繁變化的那些部分做出抽象,然而對于程序的每一個地方都進行抽象并不好,拒絕不成熟的抽象和抽象本身同樣重要。
二:單一職責原則
1、就是一個類而言,應該僅有一個引起它變化的原因。
2、如果一個類承載的職責過多,一個職責的變化可能會削弱或抑制這個類完成其他職責的能力,這種耦合會導致脆弱的設計,當變化發生時,設計會遭到意想不到的破壞
三:依賴倒轉原則
1、高層模塊不應該依賴低層 模塊,兩個都應該依賴抽象
2、抽象不應該依賴細節,細節應該依賴抽象
四:里氏代換原則
1、一個軟件實體如果使用的是一個父類的話,那么一定適用于其子類,而且察覺不出父類對象和子類對象的區別,也就是說,在軟件里面,把父類替換成他的子類,程序的行為沒有變化
2、子類必須能夠替換掉它們的父類型
3、只有父類能夠完全替換子類的時候,父類才能被真正的復用,子類也能夠在父類的基礎上增加新的行為
所有內容來自,《大話設計模式》

浙公網安備 33010602011771號