SOLID

SOLID 係軟件工程上嘅五條原則，個名取自嗰五條原則嘅開頭字母。SOLID 由美國軟件工程師羅拔·C·馬田喺 2000 年提出，旨在令電腦程式嘅設計變得更加：
有彈性－通常一個程式喺搞掂之後，設計者仲會想做啲擴充或者加修補程式。
強韌－有時一個程式可能有彈性易改，但一改就勁出錯，「強韌」意思就係打後嘅修改唔會令個程式出一大柞錯。
流動－即係呢個程式搞掂咗之後，設計者有得攞佢某啲部份返用，例如有個子程序，要依賴好多原本嗰個程式嘅其他部份先行到，呢個子程式會難返用。
無粘性－即係喺打後改個程式嗰陣，依然可以保留到原先嗰個設計。

以上呢啲問題傾向係因為依賴性而起嘅：想像一個程式 A，有個子程序 S，如果 S 一定要 A 嘅某啲部份先行得到，噉個設計師想改個程式嗰陣就比較會有難度，而且想攞 S 去第個程式嗰度用嗰陣又撈絞，所以 SOLID 嗰五條原則主要集中於控制一個程式嘅依賴性問題。

五大原則內容 
S：單一功能原則：每個物件都應該得一個單一嘅功能；一個物件多功能嘅話，佢就會有需要成日修改，出錯嘅機會就增加。
O：開閉原則：一個子程式應該要容易擴張，但唔易修改；幫一個子程式加料嗰陣，佢嘅基本功能要不變。
L：里氏替換原則：一個程式入面嘅物件應該要容易用同一子類嘅嘢替換，而個程式嘅正確性不變。
I：介面隔離原則：多個特定客戶端介面好過一個寬泛用途嘅介面；一個子程序多嘢要改嗰陣就麻煩。
D：依賴反轉原則：一個子程式應該依賴於抽象而唔係實例。

物件導向程式編寫
軟件工程

參考 
Robert C. Martin (2000). "Design Principles and Design Patterns" (PDF). objectmentor.com.

攷 

軟件設計
軟件工程