[轉]SOLID開發原則-物件導向

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   os   使用   sp   for   

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.bailey的SOLID Development Principles – In Motivational Pictures很好的解釋了SOLID原則。

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


開放封閉原則  穿著外套不要做開胸手術
軟體實體應該是可擴充,而不可修改的。也就是說,對擴充是開放的,而對修改是封閉的。這個原則是諸多物件導向編程原則中最抽象、最難理解的一個。

 

裡氏替換原則  如果它看起來像個鴨子,聲音叫聲聽起來像個鴨子,但卻需要電池——那你很可能歸納錯了
當一個子類的執行個體應該能夠替換任何其超類的執行個體時,它們之間才具有is-A關係 
  
依賴倒置原則  你會把燈泡直接連接到牆裡的電線上嗎?

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

2. 抽象不應該依賴於細節,細節應該依賴於抽象 


介面分離原則  你想讓我把插頭插上,插在哪?
不能強迫使用者去依賴那些他們不使用的介面。換句話說,使用多個專門的介面比使用單一的總介面總要好。 

這幾條原則是非常基礎而且重要的物件導向設計原則。正是由於這些原則的基礎性,理解、融匯貫通這些原則需要不少的經驗和知識的積累。上述的圖片很好的注釋了這幾條原則。

 

[轉]SOLID開發原則-物件導向

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.