Skip to content
On this page

Jun. 2024

5 th

SOLID 物件導向設計基本原則

  • Single Responsibility principle(單一職責原則)

    一個 Class 應該只有一個職責,也就是說,每次針對軟體特定範圍的變更只應影響到特定範圍的 Class。

  • Open / closed principle(開放/封閉原則)

    軟體實體(Class、Modules、Functions 等等)對於擴展是開放的,但對於修改是封閉的。 簡單來說即是希望可以加上新功能,但不會影響到現有功能。

  • Liskov substitution principle(里斯克夫替換原則)

    物件應該可以在不影響現有程式正確性的情況下被他的子類別 實作替換。 原本父類別的所做的事情,換上繼承該父類別的子類時能不影響原先的運作。

  • Interface segregation principle(介面分離原則)

    大量特定功能的 interface 比單一通用的 interface 來得更好。 如果一個 interface 過於萬能,依賴者數量過多,任何的更動都有可能對依賴它的依賴者造成影響。

  • Dependency inversion principle(依賴反轉原則)

    高階模組不應依賴於低階模組,兩者皆應依賴於抽象實體。 抽象實體不應依賴於實作,實作應當依賴於抽象實體。 注意項目越抽象的模組越高階,項目越具體的模組則越低階。 解決越特定問題的模組是低階模組,解決越通用問題的模組是高階模組。

⋯ Reference