後端語言 中階
SOLID 原則各代表什麼?能舉例說明嗎?
SOLID 原則
S — Single Responsibility Principle(單一職責)
一個類別只做一件事,只有一個改變的理由
- 壞例:
User類別同時處理業務邏輯、資料庫存取和 Email 發送 - 好例:分成
User、UserRepository、EmailService
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 評分
