SOLID (物件導向設計) - 維基百科,自由的百科全書

文章推薦指數: 80 %
投票人數:10人

在程式設計領域, SOLID(單一功能、開閉原則、里氏替換、介面隔離以及依賴反轉)是由羅伯特·C·馬丁在21世紀早期 引入的記憶術首字母縮略字,指代了物件導向程式設計和 ... SOLID(物件導向設計) 維基百科,自由的百科全書 跳至導覽 跳至搜尋 在程式設計領域,SOLID(單一功能、開閉原則、里氏替換、介面隔離以及依賴反轉)是由羅伯特·C·馬丁在21世紀早期[1]引入的記憶術首字母縮略字[2][3],指代了物件導向程式設計和物件導向設計的五個基本原則。

當這些原則被一起應用時,它們使得一個程式設計師開發一個容易進行軟體維護和擴充的系統變得更加可能。

[1]SOLID所包含的原則是通過引發編程者進行軟體原始碼的代碼重構進行軟體的代碼異味清掃,從而使得軟體清晰可讀以及可延伸時可以應用的指南。

SOLID被典型的應用在測試驅動開發上,並且是敏捷開發以及自適應軟體開發的基本原則的重要組成部分。

[1][4] 目次 1概述 2參考 2.1基本概念以及相關主題 2.2設計和開發原則 3引用 概述[編輯] 首字母 指代 概念 S 單一功能原則 認為「物件應該僅具有一種單一功能」的概念。

O 開閉原則 認為「軟體應該是對於擴充開放的,但是對於修改封閉的」的概念。

L 里氏替換原則 認為「程式中的物件應該是可以在不改變程式正確性的前提下被它的子類所替換的」的概念。

參考契約式設計。

I 介面隔離原則 認為「多個特定客戶端介面要好於一個寬泛用途的介面」[5]的概念。

D 依賴反轉原則 認為一個方法應該遵從「依賴於抽象而不是一個實例」[5]的概念。

依賴注入是該原則的一種實現方式。

參考[編輯] 基本概念以及相關主題[編輯] 自適應軟體開發 敏捷軟體開發 代碼復用 程式設計 物件導向程式設計 繼承(電腦科學) 奧卡姆剃刀 設計和開發原則[編輯] 不要重複你自己 GRASP(物件導向設計) KISS原則 參照[編輯] ^1.01.11.2「SOLIDObject-OrientedDesign」(頁面存檔備份,存於網際網路檔案館),SandiMetz(DukeUniversity),Talkgivenatthe2009GothamRubyConferenceinMay,2009.Lastverified2009-01-15. ^「PrinciplesOfOOD」(頁面存檔備份,存於網際網路檔案館),RobertC.Martin(「UncleBob」),butunclebob.com,Lastverified2009-01-14.(Notethe「firstfiveprinciples」,thoughtheacronymisnotusedinthisarticle.)Datesbacktoatleast2003. ^「GettingaSOLIDstart.」(頁面存檔備份,存於網際網路檔案館),RobertC.Martin(「UncleBob」),objectmentor.com.Lastverified2009-01-14. ^「IntroducingSOLIDObject-OrientedDesignPrinciplesandMicrosoftUnity」[永久失效連結],UweSchmitz,PresentationgivenattheRegina.NETUserGroupinMay,2009.Lastverified2009-01-14. ^5.05.1「DesignPrinciplesandDesignPatterns」(頁面存檔備份,存於網際網路檔案館),RobertC.Martin(「UncleBob」),objectmentor.com.Lastverified2009-01-14. 取自「https://zh.wikipedia.org/w/index.php?title=SOLID_(面向对象设计)&oldid=66892681」 分類:軟體設計物件導向的程序設計隱藏分類:自2017年11月帶有失效連結的條目條目有永久失效的外部連結 導覽選單 個人工具 沒有登入討論貢獻建立帳號登入 命名空間 條目討論 臺灣正體 已展開 已摺疊 不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體 查看 閱讀編輯檢視歷史 更多 已展開 已摺疊 搜尋 導航 首頁分類索引特色內容新聞動態近期變更隨機條目資助維基百科 說明 說明維基社群方針與指引互助客棧知識問答字詞轉換IRC即時聊天聯絡我們關於維基百科 工具 連結至此的頁面相關變更上傳檔案特殊頁面靜態連結頁面資訊引用此頁面維基數據項目 列印/匯出 下載為PDF可列印版 其他語言 العربيةБеларускаяБългарскиΕλληνικάEnglishEspañolفارسیFrançaisעבריתहिन्दीMagyarՀայերենItaliano日本語한국어МонголNederlandsPolskiPortuguêsРусскийSimpleEnglishSvenskaУкраїнська粵語IsiZulu 編輯連結



請為這篇文章評分?