單一職責(zé)原則
單一職責(zé)原則英文名Single Responsibility Principle 簡(jiǎn)稱SRP诗祸。
一個(gè)類應(yīng)該只有一個(gè)引起變化的原因。
里式替換原則
里氏替換原則(Liskov Substitution Principle,LSP):?
第一種定義:
如果對(duì)每一個(gè)類型為S的對(duì)象o1坤按,都有類型為T的對(duì)象o2睹晒,使得以T定義的所有程序P在所有的對(duì)象o1都代換為o2赘那,程序P的行為沒有發(fā)生變化,那么類型S是類型T的子類型评雌。
第二種定義:?
所有引用基類的地方必須透明的使用其子類的對(duì)象。
第二種定義明確的說直焙,只要父類能出現(xiàn)的地方子類也可以出現(xiàn)景东,而且替換為子類不會(huì)產(chǎn)生任何錯(cuò)誤或異常,但是反過來就不行奔誓,有子類出現(xiàn)的地方斤吐,父類未必就能適應(yīng)。
依賴倒置原則
依賴倒置原則(Dependence Inversion Principle ,DIP)
高層模塊不應(yīng)該依賴低層模塊厨喂,兩者都應(yīng)該依賴抽象
抽象不應(yīng)該依賴細(xì)節(jié)
細(xì)節(jié)應(yīng)該依賴抽象
接口隔離原則
接口隔離有兩種定義:
客戶端不應(yīng)該依賴它不需要的接口?
那依賴什么呢和措?依賴它需要的接口,客戶端需要什么接口就提供什么接口蜕煌,把不需要的接口剔除派阱,那就需要對(duì)接口進(jìn)行細(xì)化,保證其純潔性斜纪。
類間的依賴關(guān)系應(yīng)該建立在最小的接口上?
它要求是最小的接口贫母,也是要求接口細(xì)化,接口純潔盒刚。
迪米特法則
迪米特法則(Law of Demeter, LoD)也稱為最少知識(shí)原則(Least Knowledge Principle,LKP)
一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有最少的了解
只與直接的朋友通信腺劣。
開閉原則
一個(gè)軟件實(shí)體如類,模塊和函數(shù)應(yīng)該對(duì)擴(kuò)展開放因块,對(duì)修改關(guān)閉
一個(gè)軟件產(chǎn)品只要在生命周期內(nèi)橘原,都會(huì)發(fā)生變化,即然變化是一個(gè)事實(shí)涡上,我們就應(yīng)該在設(shè)計(jì)時(shí)盡量適應(yīng)這些變化趾断,以提高項(xiàng)目的穩(wěn)定性和靈活性,真正實(shí)現(xiàn)“擁抱變化”吓懈。開閉原則告訴我們應(yīng)盡量通過擴(kuò)展軟件實(shí)體的行為來實(shí)現(xiàn)變化歼冰,而不是通過修改現(xiàn)有代碼來完成變化,它是為軟件實(shí)體的未來事件而制定的對(duì)現(xiàn)行開發(fā)設(shè)計(jì)進(jìn)行約束的一個(gè)原則耻警。
Single Responsibility Principle : 單一職責(zé)原則
Open Closed Principle : 開閉原則
Liskov Substitution Principle : 里式替換原則
Law of Demeter :迪米特法則
Interface Segregation Principle : 接口隔離原則
Dependence Inversion Principle : 依賴倒置原則
把這6個(gè)原則的首字母(里式替換原則和迪米特法則的首字母重復(fù),只取一個(gè))聯(lián)合起來就是SOLD(solid甸怕,穩(wěn)定的)甘穿,其代表的含義也就是把這6個(gè)原則的結(jié)合時(shí)候的好處:簡(jiǎn)歷穩(wěn)定、靈活梢杭、健壯的設(shè)計(jì)温兼,而開閉原則又是重中之重,是最基礎(chǔ)的原則武契。