1、單一職責(zé)原則(Single Responsibility Principle,縮寫SRP)
對(duì)于一個(gè)類來說,應(yīng)當(dāng)只有一個(gè)引起他變化的原因。它是對(duì)一組相關(guān)性很高的函數(shù)、數(shù)據(jù)的封裝。在開發(fā)過程中我們單一職責(zé)的劃分是一種很模糊的概念,在很多時(shí)候,我們需要依靠個(gè)人的經(jīng)驗(yàn)來界定。因?yàn)殚_發(fā)者的經(jīng)驗(yàn)不同,有可能導(dǎo)致在對(duì)類的職責(zé)劃分的時(shí)候產(chǎn)出不同的理解。
2、開閉原則(Open Close Principle,縮寫OCP)
開閉原則的定義:軟件的對(duì)象(類、模塊、函數(shù))應(yīng)該對(duì)于擴(kuò)展是開放的,但是對(duì)于修改是封閉的。
在我們的開發(fā)過程中,因?yàn)樽兓?、升?jí)和維護(hù)等原因需要對(duì)原代碼進(jìn)行修改時(shí),可能會(huì)將錯(cuò)誤引入帶原本已經(jīng)測(cè)試穩(wěn)定的舊代碼中,破壞原有系統(tǒng)。因此,我們?cè)趯?shí)際開發(fā)過程中,應(yīng)該盡量通過擴(kuò)展的方式來實(shí)現(xiàn)變化,而不是直接修改已有的代碼
3、里氏替換原則
里斯替換原則依賴于繼承和多態(tài)兩大特性,簡(jiǎn)單的說就是,所有引用基類的地方必須能透明地使用其子類的對(duì)象。只要父類出現(xiàn)的地方子類就可以出現(xiàn),而且替換成子類不會(huì)有任何的錯(cuò)誤或異常,使用者可能根本就不需要知道是父類還是子類。
4、依賴倒置原則
依賴倒置原則是一種特定的解耦形勢(shì),使得高層次的模塊不依賴于低層次的模塊的實(shí)現(xiàn)細(xì)節(jié)
依賴倒置原則的幾個(gè)關(guān)鍵點(diǎn):
(1)高層模塊不應(yīng)該依賴低層模塊,兩者之間都應(yīng)該依賴其抽象
(2)抽象不應(yīng)該依賴細(xì)節(jié)
(3)細(xì)節(jié)應(yīng)該依賴抽象
5、接口隔離原則
類與類之間的依賴關(guān)系應(yīng)該建立在最小的接口之上,接口隔離原則將非常龐大、臃腫的接口拆分成更小的和更具體的接口,這樣客戶端將會(huì)只需要知道他們感興趣的方法。
接口隔離原則的摸底是系統(tǒng)解開耦合,從而更容易重構(gòu),更改和重新部署。
6、迪米特原則
也稱為最少知識(shí)原則,一個(gè)對(duì)象應(yīng)該對(duì)其其他對(duì)象有最少的了解。簡(jiǎn)單的講就是一個(gè)類應(yīng)該對(duì)自己需要耦合或者調(diào)用的類知道最少,類的內(nèi)部如何實(shí)現(xiàn)與調(diào)用者或者依賴著沒有冠以,調(diào)用者或者依賴者只需要知道他需要的方法即可。類和類之間的關(guān)系越密切,耦合度越大,當(dāng)一個(gè)類發(fā)生改變時(shí),對(duì)另一個(gè)類的影響也大。