1.OCP 定義:

軟體應該是可以擴充但是不可以修改的(對擴展開放對修改封閉)。

a.對擴展開放:有新需求或變化時候,模組之行為可以被擴充

b.對修改封閉:對模組進行擴展時,原本正確之部分不該被變更。

 

2.EX

擷取    

上圖BankHandle類別知道BankProcess類別。

擷取  

擷取  

若以此種方式,當要新增功能時必須去修改 BankProcess 和 Swtich,兩個類別都必須動到破壞原本格局。

總結以上有兩大缺點:

  • 1.BankProcess違反單一職責原則(處理多件事情)。
  • 2.有新需求必須去變更現有程式碼違反開放封閉原則。

 

3.上述修正方式

擷取  

新增一個IBankProcess Interface,當有新需求出來時候只要多新增類別並且繼承IBankProcess即可不會去動到其他

(達到修改封閉對擴展開放)。

假設我們新增基金處理業務,只需要新增不需要變動任何已經正確的程式

擷取  

擷取  

擷取  

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 melomelo1988 的頭像
    melomelo1988

    melo 唐

    melomelo1988 發表在 痞客邦 留言(0) 人氣()