
principium.jpg
單一職責(zé)原則 SPR
定義:應(yīng)該有且僅有一個(gè)原因引起類(lèi)的變更
there should never be more than one reason for a class to change
使用好處
- 類(lèi)的復(fù)雜性降低,實(shí)現(xiàn)什么職責(zé)都有清晰明確的定義
- 可讀性提高
- 可維護(hù)性高
- 變更引起的風(fēng)險(xiǎn)降低,變更是必不可少的,但是如果單一職責(zé)用的好,修改接口對(duì)其他接口無(wú)影響,這對(duì)系統(tǒng)的擴(kuò)展維護(hù)是有很大好處的。
里氏替換原則
定義:只要父類(lèi)出現(xiàn)的地方,子類(lèi)就可以出現(xiàn),而且替換為子類(lèi)不會(huì)產(chǎn)生任何錯(cuò)誤異常,使用者根本不需要知道使用的是子類(lèi)還是父類(lèi),但是返回來(lái)就行不行了,子類(lèi)出現(xiàn)的地方如果冒然替換為父類(lèi)未必就能適應(yīng)。
規(guī)則:子類(lèi)必須完全實(shí)現(xiàn)父類(lèi)的方法
總結(jié)一句話(huà) —— 就是盡量不要從可實(shí)例化的父類(lèi)中繼承,而是要使用基于抽象類(lèi)和接口的繼承。
依賴(lài)倒置原則
定義:
- 高層模塊不應(yīng)該依賴(lài)于底層模塊,兩者都應(yīng)該依賴(lài)于其抽象;
- 抽象不應(yīng)該依賴(lài)于實(shí)現(xiàn)類(lèi)
- 實(shí)現(xiàn)類(lèi)依賴(lài)接口或抽象類(lèi)
接口隔離原則
接口方法數(shù)量要少,盡量使用多個(gè)專(zhuān)門(mén)的接口
迪米特法則
最少知識(shí)原則,一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有最少的了解。我只知道你的public方法就ok了其他的我一概不管
開(kāi)閉原則
對(duì)外擴(kuò)展開(kāi)放,修改關(guān)閉,你隨便擴(kuò)展,但是不可以修改。