public
inte***ce ibankprocess
public
class depositprocess : ibankprocess
}public
class withdrawprocess : ibankprocess
}public
class transferprocess : ibankprocess
}public
class bankstaff
userproc.process();}}
這樣當業務變更時,只需要修改對應的業務實現類就可以,其他不相干的業務就不必修改。當業務增加,只需要增加業務的實現就可以了。
設計建議:
開放封閉原則,是最為重要的設計原則,liskov替換原則和合成/聚合復用原則為開放封閉原則提供保證。
可以通過template method模式和strategy模式進行重構,實現對修改封閉,對擴充套件開放的設計思路。
封裝變化,是實現開放封閉原則的重要手段,對於經常發生變化的狀態,一般將其封裝為乙個抽象,例如銀行業務中ibankprocess介面。
拒絕濫用抽象,只將經常變化的部分進行抽象。
設計模式之開放封閉原則
親愛的博友們,感謝來到darren的部落格 最近一直很忙,今天抽空開了一下開放封閉原則,再這裡和各位分享一下學習心得 開放封閉原則 軟體實體 類,模組,函式 等等,對於擴充套件是開放的,對於修改是封閉的。對於程式設計而言,怎麼的設計才能面對需求的改變卻可以保持相對的穩定,從而可以使得系統可以再第乙個...
設計模式原則 開放 封閉原則
定義 軟體實體應該是可以擴充套件,但是不可修改,對擴充套件開放,對更改封閉 場景 某公司需要招聘3類員工,分別是 主管,程式設計師,銷售。公司根據不同的員工的需求,配置不同的資源。比如程式設計師應該配台電腦。首先定義乙個 員工型別 列舉 using system using system.colle...
設計模式 開放封閉原則
物件導向設計原則中,最重要的原則就是此原則。開放封閉原則解釋 軟體實體 類,模組,函式等 應該是可以擴充套件的,但是是不可以修改的。開放封閉原則有兩大特徵要牢記 一 對於擴充套件是開放的 二 對於修改是封閉的 為什麼要用到開放封閉原則?我們在做任何系統的時候,都不要指望系統一開始就需求確定,這是不現...