後端語言 中階

SOLID 原則各代表什麼?能舉例說明嗎?

AI 練習作答

SOLID 原則

S — Single Responsibility Principle(單一職責)

一個類別只做一件事,只有一個改變的理由

  • 壞例:User 類別同時處理業務邏輯、資料庫存取和 Email 發送
  • 好例:分成 UserUserRepositoryEmailService

O — Open/Closed Principle(開放封閉)

對擴充開放,對修改封閉

  • 新增功能不修改舊程式碼,透過繼承/組合擴充
  • 策略模式(Strategy Pattern)是典型實踐

L — Liskov Substitution Principle(里氏替換)

子類別應可完全替換父類別而不破壞程式行為

  • 違反例:Square extends Rectangle,修改寬度時同時修改高度,破壞矩形語意

I — Interface Segregation Principle(介面隔離)

不強迫客戶依賴它不使用的介面,拆分大型介面為小型專用介面

D — Dependency Inversion Principle(依賴反轉)

高層模組不依賴低層模組,兩者都依賴抽象(介面)

  • 依賴注入(DI)是實踐此原則的常見手法

面試加分:SOLID 不是死板規則,而是指導方針。過度應用(如所有類別都加 interface)反而增加複雜度,需要在「靈活性」和「簡潔性」間取捨。

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分