天天看點

面象對象設計6大原則之二:開放封閉原則

開放封閉原則( OCP ),The Open Closed Principle 定義

一個軟體的實體,包括類、方法、子產品、應該對擴充開放,對修改關閉。

也就是說一個軟體的實體應該通過擴充的方式來修改變化,而不是修改已有實體源代碼。

開放封閉原則也是最基本需要遵守的原則,我們應該盡量保證系統的穩定性,我們在實作另外一個功能的時候不能修改之前已有的代碼以免造成之前的功能出現BUG,帶來不必要的麻煩,是以開放封閉原則正是引導我們去設計一個穩定、友善擴充的系統。

在實際應用中我們一般會有以下幾種做法保證開放封閉原則:

1、抽象出一個接口或者抽象類,定義公共的方法,達到擴充的目的。

2、參數類型和引用類型使用接口或者抽象類,不能依賴實作類。

3、接口和抽象類不能修改,可以使用繼承接口或者抽象父類的形式達到擴充的目的。

這些應用看起來也并不複雜,無非是合理地定義接口和抽象類,不同的業務功能采用不同的實作類達到擴充,像設計模式中的政策模式、模闆方式模式等都是開放封閉的原則。

總結一下,開放封閉原則具有以下幾個優點:

1、友善擴充,提高了可維護性。

2、不影響已有功能,提高了系統穩定性和減少了重複測試。

3、擴充之前的邏輯,提高了代碼複用性。

繼續閱讀