1.單一原則(Single Responsibility Principle):一個類或者一個方法只負責一項職責,盡量做到類的只有一個行為原因引起變化;
a、業務對象(BO business object)、業務邏輯(BL business logic)拆分;
2.里氏替換原則(LSP liskov substitution principle):子類可以擴展父類的功能,但不能改變原有父類的功能;(本質其實就是c++的多態)
(目的:增強程序的健壯性)實際項目中,每個子類對應不同的業務含義,使父類作為參數,傳遞不同的子類完成不同的業務邏輯。
3.依賴倒置原則(dependence inversion principle):面向接口編程;(通過接口作為參數實現應用場景)
抽象就是接口或者抽象類,細節就是實現類
含義:
上層模塊不應該依賴下層模塊,兩者應依賴其抽象;
抽象不應該依賴細節,細節應該依賴抽象;
通俗點就是說變量或者傳參數,盡量使用抽象類,或者接口;
【接口負責定義public屬性和方法,並且申明與其他對象依賴關系,抽象類負責公共構造部分的實現,實現類准確的實現業務邏輯】
4.接口隔離(interface segregation principle):建立單一接口;(擴展為類也是一種接口,一切皆接口)
定義:
a.客戶端不應該依賴它不需要的接口;
b.類之間依賴關系應該建立在最小的接口上;
簡單理解:復雜的接口,根據業務拆分成多個簡單接口;(對於有些業務的拆分多看看適配器的應用)
【接口的設計粒度越小,系統越靈活,但是靈活的同時結構復雜性提高,開發難度也會變大,維護性降低】
5.迪米特原則(law of demeter LOD):最少知道原則,盡量降低類與類之間的耦合;
一個對象應該對其他對象有最少的了解
6.開閉原則(open closed principle):用抽象構建架構,用實現擴展原則;(總綱)
(solid穩定的 記憶首字母)