1.單一職責(zé)原則(srp single responsibility principle)?
通過業(yè)務(wù)職責(zé),業(yè)務(wù)功能進(jìn)行接口的設(shè)計。理解為根據(jù)最小業(yè)務(wù)邏輯功能。做行為和屬性的區(qū)分。來達(dá)到接口的單一職責(zé)。
2.里氏替換原則
定義:如果對每一個類型S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序p的行為沒有發(fā)生變化,那么類型S是類型T的子類型。?
通俗理解就是父類在程序中任何地方出現(xiàn),那么子類也可以出現(xiàn)。反之則不習(xí)慣,A是B的子類 那么在java中實例化可以 B? a = new A;?
3.依賴倒置原則(面向接口編程)
定義:1.高層模塊不應(yīng)該依賴底層模塊,兩者都應(yīng)該依賴其抽象, 2.抽象不應(yīng)該依賴細(xì)節(jié)。3.細(xì)節(jié)應(yīng)該依賴抽象。
理解就是 一個功能模塊是由子功能模塊構(gòu)成。那么同層模塊之間通過抽象和接口進(jìn)行構(gòu)建依賴關(guān)系。那么子功能模塊也是通過抽象和接口依賴高層模塊。細(xì)節(jié)依賴抽象。 可以理解為 就是接口或者抽象類 和 他們實現(xiàn)類的關(guān)系。?
依賴的三種寫法:構(gòu)造函數(shù)依賴注入,setter 方法依賴注入,接口依賴注入。
4.接口隔離原則
接口隔離定義:客戶端不應(yīng)該依賴它不需要的接口 。類間的依賴關(guān)系應(yīng)該建立在最小的接口上。
理解為:冗余不必要的接口要移除。接口盡量精簡和少。
5.迪米特法則 Law of Demeter,LoD 最少原則
粗淺理解就是類內(nèi)部除非必須曝露給其他實例的數(shù)據(jù)和方法,其他的不曝露出來。也就是低耦合 高類聚的一個表現(xiàn)。?
6.開閉原則
對變化采用擴(kuò)展方式在適應(yīng)變化,關(guān)閉對原有模塊的修改。