有的工程師在工作時,有聽過物件導向的 SOLID 原則。
今天我們來談談,Functional Programming 還要不要遵守 SOLID 原則?
如上面所說,SOLID 原則是物件導向開發的一系列原則,分別是:
我們來看看這些原則在 Functional Programming 的世界裡面怎麼出現
物件導向的世界裡面,我們希望一個系統,比方說類別,最好只有一個改變的理由。也就是說,要是有某個功能要調整,我們總是知道要改哪個系統,而且不會影響其他功能。
Functional Programming 的世界裡面,我們也要這麼做:每個函式的功能只有一個,修改單一函式不會把其他功能改壞。
透過函式的合成,我們可以以替換函式的方式調整功能,讓系統對擴充開放,但是對修改封閉。
里氏替換是針對類別繼承的規則。這裡我們沒有繼承,所以不考慮里氏替換。
這裡我們沒有介面,函式本身就是我們的介面。
透過將函式以參數傳入的方式,我們可以達成另一種方式的依賴反轉:依賴參數函式而不依賴內部實作。