使人瘋狂的 SOLID 原則:目錄

YC
程式愛好者
Published in
Aug 14, 2020

--

又是時候挖坑給自己跳,讓我們來看看鼎鼎大名的 SOLID 原則!
SOLID 原則由 Robert C. Martin 等人建立,指物件導向程式設計的五個基本原則,為我們在以 OO 為開發時,能更為明確及有效地設計程式架構。

我們在說程式架構時,不只是在說每一行、每一個 function 該怎麼寫得好 (因為這是基本的),而是這些一個個軟體模組如何能用漂亮、優雅、美妙的方式建出的一個良好的「軟體大樓」,所以良好的程式碼不等於良好的構架。

「我們可以用大量精心製作的磚塊來製造垃圾」- Robert C. Martin

那當我們有了精心製作的磚塊,我們又該何去何從?這就是我們這系列文章的主題,SOLID 原則。

SOLID 原則告訴我們,該如何將我們的 data 與 Function 安排到類別中,以及這些類別該如何相互關聯。

這裡的類別是泛指任何 data 與 Function 的集合,而不只是單指 OO 類別的軟體架構。在網路上有很多講 SOLID 原則的文章,但很少有指出「類別」的到底是指什麼,很多人也會誤會「類別」是真的指 OO 的 Class ,但實則並非如此!

在 Clean Architecture 書中有提到,SOLID 原則目標是建立中層級的軟體結構,而「中層級」是指這些原則是程式設計師在模組層級工作時應用的原則。它們應用在程式碼層級之上,並且有助於定義模組和元件內使用的軟體結構類型。

這「中層級」就是我們上文說到的「類別」,是 data 與 function 的集合。所以是在程式碼層級之上,如 OO 中的類別就是一個中層級模組。而SOLID 原則就是為他們而服務,讓我們可以透過這些原則寫出能容忍變化、易於理解,且能被模組使用的良好「地基」

所以,說了這麼多,我們要來了解一下 SOLID 是什麼。

SOLID 是5大原則的簡稱,分別為:
S = Single-responsibility principle (SRP) = 單一職責原則
O = Open–closed principle (OCP) = 開放封閉原則
L =Liskov substitution principle (LSP) = 里氏替換原則
I = Interface segregation principle (ISP) = 介面隔離原則
D = Dependency inversion principle (DIP) = 依賴反向原則

如果你覺得我的文章幫助到你,希望你也可以為文章拍手,分別 Follow 我的個人頁與程式愛好者出版,按讚我們的粉絲頁喔,支持我們推出更多更好的內容創作!

--

--

YC
程式愛好者

提供更精確的技術內容為目標,另創立「程式愛好者」專頁。資深軟體工程師,專研後端技術、物件導向、軟體架構。