正文

成功應用程序的模式(4)

ASP.NET設計模式 作者:(美)Scott Millett


1.2.2  S.O.L.I.D.設計原則

S.O.L.I.D.設計原則是一組針對面向對象設計的最佳實踐。GoF設計模式均以這樣或那樣的形式遵守這些原則。術語S.O.L.I.D.來自于Robert C. Martin(朋友們親切地稱呼他Bob大叔)的著作Agile Principles, Patterns, and Practices in C#中收集的5個設計原則的名稱的首字母。下面將依次介紹這些設計原則。

1. 單一責任原則(SRP)

SRP原則與SoC原則保持高度一致。它要求每個對象只應該為一個元素而改變而且只有一個職責關注點。遵循這個原則,就可以避免單體類(就像是軟件領域的瑞士軍刀)設計問題。使每個類均保持簡潔,就可以提升系統的可讀性和可維護性。

2. 開放封閉原則(OCP)

OCP原則要求類對于擴展應該是開放的,而對于修改應該是封閉的,這樣應該就能夠在不改變類的內部行為的情況下添加新功能并擴展類。這個原則努力避免破壞已有的類以及其他依賴它的類,因為這會在應用程序中造成bug和錯誤的漣漪效應。

3. 里氏替換原則(LSP)

LSP原則指出應該能夠使用任何繼承類來替代父類并且讓其行為方式保持不變。這個原則與OCP原則保持一致:它確保繼承類不會影響父類的行為,換句話來說,繼承類必須可替代它們的基類。

4. 接口分離原則(ISP)

ISP原則關注的是將契約的方法劃分成若干職責分組,并且為這些分組指派不同的接口,這樣客戶端就不需要實現一個龐大的接口和一堆它們并不使用的方法。這個原則背后的目的是:使用相同接口的類只需要實現特定的一組方法,而不是實現一個龐大的單體方法接口。

5. 依賴倒置原則(DIP)

DIP原則的宗旨是將自己編寫的類與具體的實現隔離開來,讓這些類依賴于抽象類或接口。它提倡面向接口(而不是實現)編程,這確保代碼不會與某種實現緊密耦合,從而提高了系統的靈活性。

6. 依賴注入(DI)和控制反轉(IoC)原則

與DIP緊密相關的是DI原則和IoC原則。DI通過構造器、方法或屬性來提供底層類或從屬類。配合使用DI原則,這些從屬類可以被反轉為接口或抽象類,這樣就可以形成一個具有較高的可測試性和易于修改的松散耦合系統。

在IoC原則中,系統的控制流與過程式編程方法相比是反轉的。這個原則的一個示例是IoC容器,它的作用是將服務注入到客戶端代碼,而不必讓客戶端代碼指定具體的實現。在該實例中,控制反轉指的是客戶端獲取服務的行為。

本書中,將更詳細地研究每個S.O.L.I.D.原則。但接下來,將探討一些專門用來處理特殊情況的企業(yè)級模式,它們以常見設計原則和設計模式為基礎構建。


上一章目錄下一章

Copyright ? 讀書網 www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號