標籤: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開發原則-物件導向