SOLID
閱讀設定
SOLID 係軟件工程上嘅五條原則,個名取自嗰五條原則嘅開頭字母。SOLID 由美國軟件工程師羅拔·C·馬田(Robert C. Martin)喺 2000 年提出,旨在令電腦程式嘅設計(以至軟件工程)變得更加:
- 有彈性-通常一個程式喺搞掂之後,設計者仲會想做啲擴充或者加修補程式。
- 強韌-有時一個程式可能有彈性易改,但一改就勁出錯,「強韌」意思就係打後嘅修改唔會令個程式出一大柞錯。
- 流動-即係呢個程式搞掂咗之後,設計者有得攞佢某啲部份返用,例如有個子程序,要依賴好多原本嗰個程式嘅其他部份先行到,呢個子程式會難返用。
- 無粘性-即係喺打後改個程式嗰陣,依然可以保留到原先嗰個設計[1][2]。
以上呢啲問題傾向係(直接間接)因為依賴性(dependency)而起嘅:想像一個程式 A,有個子程序 S,如果 S 一定要 A 嘅某啲部份先行得到(有依賴性),噉個設計師想改個程式嗰陣就比較會有難度(一改咗某個部份,就搞到 S 行唔到或者行起上嚟出錯),而且想攞 S 去第個程式嗰度用嗰陣又撈絞(第啲程式未必有 S 依賴嘅部份),所以 SOLID 嗰五條原則主要集中於控制一個程式嘅依賴性問題[2]:p. 4。
五大原則內容
[編輯]- S:單一功能原則(Single responsibility principle):每個物件都應該得一個單一嘅功能;一個物件多功能嘅話,佢就會有需要成日修改,出錯嘅機會就增加[3]。
- O:開閉原則(Open Closed Principle):一個子程式應該要容易擴張,但唔易修改;幫一個子程式加料嗰陣,佢嘅基本功能要不變[4]。
- L:里氏替換原則(Liskov Substitution principle):一個程式入面嘅物件應該要容易用同一子類嘅嘢替換,而個程式嘅正確性不變[5]。
- I:介面隔離原則(Interface-segregation principles):多個特定客戶端介面好過一個寬泛用途嘅介面;一個子程序多嘢要改嗰陣就麻煩[6]。
- D:依賴反轉原則(Dependency inversion principle):一個子程式應該依賴於抽象而唔係實例[7]。
睇埋
[編輯]參考
[編輯]- Robert C. Martin (2000). "Design Principles and Design Patterns" (PDF). objectmentor.com.
攷
[編輯]- ↑ Robert C. Martin. "Principles Of OOD". butunclebob.com.
- ↑ 2.0 2.1 Robert C. Martin (2000). "Design Principles and Design Patterns" (PDF). objectmentor.com.
- ↑ "Single Responsibility Principle" (PDF). objectmentor.com.
- ↑ "Open/Closed Principle" (PDF). objectmentor.com.
- ↑ "Liskov Substitution Principle" (PDF). objectmentor.com.
- ↑ "Interface Segregation Principle" (PDF). objectmentor.com.
- ↑ "Dependency Inversion Principle" (PDF). objectmentor.com.