面向對象設計的SOLID原則

S.O.L.I.D是面向對象設計和編程(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.baileySOLID Development Principles – In Motivational Pictures很好的解釋了SOLID原則。 微信

單一責任原則:
當須要修改某個類的時候緣由有且只有一個(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。換句話說就是讓一個類只作一種類型責任,當這個類須要承當其餘類型的責任的時候,就須要分解這個類。
 SingleResponsibilityPrinciple2_71060858 session


開放封閉原則
軟件實體應該是可擴展,而不可修改的。也就是說,對擴展是開放的,而對修改是封閉的。這個原則是諸多面向對象編程原則中最抽象、最難理解的一個。 編碼

OpenClosedPrinciple2_2C596E17 

里氏替換原則
當一個子類的實例應該可以替換任何其超類的實例時,它們之間才具備is-A關係
LiskovSubtitutionPrinciple_52BB5162 
依賴倒置原則
1. 高層模塊不該該依賴於低層模塊,兩者都應該依賴於抽象
2. 抽象不該該依賴於細節,細節應該依賴於抽象
DependencyInversionPrinciple_0278F9E2 spa


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

InterfaceSegregationPrinciple_60216468

這幾條原則是很是基礎並且重要的面向對象設計原則。正是因爲這些原則的基礎性,理解、融匯貫通這些原則須要很多的經驗和知識的積累。上述的圖片很好的註釋了這幾條原則。 設計

 

歡迎你們關注微信號opendotnet,微信公衆號名稱:dotNET跨平臺。掃下面的二維碼或者收藏下面的二維碼關注吧(長按下面的二維碼圖片、並選擇識別圖中的二維碼) 對象

相關文章
相關標籤/搜索