- 模組應當敞開擴充大門,但關閉修改之窗。
- 如何達成開閉原則,關鍵在抽象化。
- 不允許更改的是系統的抽象層,允許擴充的是系統的實作層。
- OCP的另一個角度是EVP對可變性的封裝原則(Principle of Encapsulation of Variation)即找到一個系統的可變因素,並將之封裝起來。
- 可變性必須被封裝,那不同的可變性呢?應用繼承來處理,因此繼承應被視為封裝變化的方法,但繼承的層數避免超過2層以免不同的可變性混和。
- 應避免將單純的流程控制轉移語句改寫成多型,除非內含了某種商務邏輯。
- 所有的設計樣式(Design Pattern)都是針對不同的可變性封裝,使系統在不同的角度上達到開閉原則。
沒有留言:
張貼留言