OCP: Open/Closed Principle 開放封閉原則
簡單來說就是 開放擴充 封閉內部修改
直接來看Code
不滿足OCP 原則
- 建立interface CalculatorOperation
- 建立Addition 並實作 CalculatorOperator
- 建立Subtraction 並實作CalculatorOperator
- 建立Calcuator 物件
到這裡已完成 Calculator 要去做計算 加減的程式
OCP 原則 為開放擴充 封閉修改內部
注意如果我們今天要在多增加 “乘除” 計算式就得修改Calculator
如此一來便違反了OCP原則.
接下來我們修正一下原始碼讓他符合OCP原則
滿足OCP原則
- 增加抽象層行為 perform
讓Object 都得實作perform 計算行為
如此一來便滿足OCP 開放擴充 封閉內部修改原則
假設要擴充Multiply 只需要增加 Multiply 物件而不用修改到Calculator.
Reference from: https://www.baeldung.com/java-open-closed-principle