面向?qū)ο笤O(shè)計的SOLID原則

S.O.L.I.D是面向?qū)ο笤O(shè)計和編程(OOD&OOP)中幾個重要編碼原則(Programming Priciple)的首字母縮寫。

SRP The Single Responsibility Principle 單一責任原則

OCP The Open Closed Principle 開放封閉原則

LSP The Liskov Substitution Principle 里氏替換原則

DIP The Dependency Inversion Principle 依賴倒置原則

ISP The Interface Segregation Principle 接口分離原則

Steve Smith在5月份的微軟TechED 2009上有個SOLIDify Your ASP.NET MVC的講座, derick.bailey的SOLID Development Principles – In Motivational Pictures很好的解釋了SOLID原則。

單一責任原則:

當需要修改某個類的時候原因有且只有一個(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。換句話說就是讓一個類只做一種類型責任,當這個類需要承當其他類型的責任的時候,就需要分解這個類。


開放封閉原則:

軟件實體應該是可擴展,而不可修改的。也就是說,對擴展是開放的,而對修改是封閉的。這個原則是諸多面向?qū)ο缶幊淘瓌t中最抽象、最難理解的一個。


里氏替換原則:

當一個子類的實例應該能夠替換任何其超類的實例時,它們之間才具有is-A關(guān)系


依賴倒置原則:

1. 高層模塊不應該依賴于低層模塊,二者都應該依賴于抽象

2. 抽象不應該依賴于細節(jié),細節(jié)應該依賴于抽象


接口分離原則:

不能強迫用戶去依賴那些他們不使用的接口。換句話說,使用多個專門的接口比使用單一的總接口總要好。


這幾條原則是非常基礎(chǔ)而且重要的面向?qū)ο笤O(shè)計原則。正是由于這些原則的基礎(chǔ)性,理解、融匯貫通這些原則需要不少的經(jīng)驗和知識的積累。上述的圖片很好的注釋了這幾條原則。

reference: http://www.cnblogs.com/lanxuezaipiao/archive/2013/06/09/3128665.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容