設計原則構成了設計模式賴以構建的基礎。通過遵循經過驗證的設計原則,自己的代碼會變得更加靈活、更加能夠適應變化,而且可維護性更佳。
常見設計原則
簡約原則(KISS)
KISS原則的目標就是讓代碼保持簡潔但不要過於簡陋,從而避免引入任何不必要但複雜度。
不要重複自己(DRY)
BRY原則但目的是通過將公用但部分抽離出來放在一個單獨的地方,從而避免重複系統中的任何部分。當然避免重複的不僅僅是代碼,還包括商務邏輯。
講述而不要詢問(Tell,Don‘t Ask)
這個原則要求應該告訴對象您希望它們執行什麼動作,而不是詢問有關對象狀態的問題然後您自己決定希望執行什麼動作。這樣有助於匹配責任並避免類之間的緊密耦合。
您不需要它(YAGNI)
該原則指的是只需要將應用程式必須的功能包含進來,而不要試圖添加任何其他您認為可能需要的功能。
分離關注點(SoC)
SoC這一過程將軟體分解為多項不同的功能,每項功能封裝了可供其他類使用的唯一行為和資料。通常,一個關注點代表類的一項功能或行為。將程式劃分成若干獨立職責的做法顯著提高了代碼的重用成都、維護性和可測試性。
S.O.L.I.D設計原則
單一職責原則(SRP)
SRP與分離關注點原則保持高度一致。它要求每個對象應該有且只有一個職責關注點,即只有一個引起類變化的原因。
開放封閉原則(OCP)
該原則要求類對於擴充應該是開放的,而對於修改應該是關閉的,這樣應該就能夠在不改變類的內部行為的情況下為類添加新功能,並且避免類被破壞,造成不必要的錯誤或則bug。
裡氏替換原則(LSP)
任何父類都應該可以被子類替代,並且保持其行為不變。改原則與OCP原則保持一致,確保繼承類不會影響父類的行為。
介面分離原則(ISP)
ISP原則關注的是將介面方法按職責劃分為若干個組,並且為這些分組指派不同的介面。避免用戶端實現一個龐大和一堆用不到的介面。
依賴倒置原則(DIP)
DIP原則的宗旨是將自己編寫的類與具體的實現隔離開來,讓這些類依賴於抽象或者介面。它提倡面向介面編程,這確保代碼不會與某種實現緊密耦合,從而提高惡系統的靈活性。
依賴注入(DI)和控制反轉(SoC)原則
DI、SoC與DIP是緊密相連的。DI通過構造器、方法或屬性提供低層類或從屬類。配合使用DI原則,這些從屬類可以被反轉為介面或抽象類別,這樣就可以形成一個具有較高的可測試性和易於修改的低耦合系統。
ASP.NET設計模式: