在程序設計領域, SOLID(單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉)是由羅伯特·C·馬丁在21世紀早期引入的記憶術首字母縮略字,指代了面向對象編程和麪向對象設計的五個基本原則。當這些原則被一起應用時,它們使得一個程序員開發一個容易進行軟件維護和擴展的系統變得更加可能。SOLID所包含的原則是通過引發編程者進行軟件源代碼的代碼重構進行軟件的代碼異味清掃,從而使得軟件清晰可讀以及可擴展時可以應用的指南。SOLID被典型的應用在測試驅動開發上,並且是敏捷開發以及自適應軟件開發的基本原則的重要組成部分。
概述
首字母 | 指代 | 概念 |
---|---|---|
S | 單一功能原則 | 單一功能原則認爲對象應該僅具有一種單一功能的概念。 |
O | 開閉原則 | 開閉原則認爲“軟件體應該是對於擴展開放的,但是對於修改封閉的”的概念。 |
L | 里氏替換原則 | 里氏替換原則認爲“程序中的對象應該是可以在不改變程序正確性的前提下被它的子類所替換的”的概念。參考 契約式設計。 |
I | 接口隔離原則 | 接口隔離原則認爲“多個特定客戶端接口要好於一個寬泛用途的接口”[5] 的概念。 |
D | 依賴反轉原則 | 依賴反轉原則認爲一個方法應該遵從“依賴於抽象而不是一個實例”[5] 的概念。依賴注入是該原則的一種實現方式。 |