close
1.OCP 定義:
軟體應該是可以擴充但是不可以修改的(對擴展開放對修改封閉)。
a.對擴展開放:有新需求或變化時候,模組之行為可以被擴充
b.對修改封閉:對模組進行擴展時,原本正確之部分不該被變更。
2.EX
上圖BankHandle類別知道BankProcess類別。
若以此種方式,當要新增功能時必須去修改 BankProcess 和 Swtich,兩個類別都必須動到破壞原本格局。
總結以上有兩大缺點:
- 1.BankProcess違反單一職責原則(處理多件事情)。
- 2.有新需求必須去變更現有程式碼違反開放封閉原則。
3.上述修正方式
新增一個IBankProcess Interface,當有新需求出來時候只要多新增類別並且繼承IBankProcess即可不會去動到其他
(達到修改封閉對擴展開放)。
假設我們新增基金處理業務,只需要新增不需要變動任何已經正確的程式。
全站熱搜