S單一職責SRP Single-Responsibility Principle
一個類,最好只做一件事,只有一個引起它的變化。單一職責原則可以看做是低耦合,高內(nèi)聚在面向對象原則的引申,將職責定義為引起變化的原因,以提高內(nèi)聚性減少引起變化的原因。
比如: SpringMVC 中Entity,DAO,Service,Controller, Util等的分離。
O開放封閉原則OCP Open - Closed Principle
對擴展開放,對修改關閉(設計模式的核心原則)
比如: 設計模式中模板方法模式和觀察者模式都是開閉原則的極好體現(xiàn)
L里氏替換原則LSP Liskov Substitution Principle
任何基類可以出現(xiàn)的地方,子類也可以出現(xiàn);這一思想表現(xiàn)為對繼承機制的約束規(guī)范,只有子類能夠替換其基類時,才能夠保證系統(tǒng)在運行期內(nèi)識別子類,這是保證繼承復用的基礎。
比如:正方形是長方形是理解里氏代換原則的經(jīng)典例子。(講的是基類和子類的關系,只有這種關系存在時,里氏代換原則才存在)
I接口隔離法則ISL Interface Segregation Principle
客戶端不應該依賴那些它不需要的接口。(接口隔離原則是指使用多個專門的接口,而不使用單一的總接口;這個法則與迪米特法則是相通的)
D依賴倒置原則DIP Dependency-Inversion Principle
要依賴抽象,而不要依賴具體的實現(xiàn),具體而言就是高層模塊不依賴于底層模塊,二者共同依賴于抽象。抽象不依賴于具體,具體依賴于抽象。