設計模式-開閉原則

語言: CN / TW / HK

基本介紹

1) 開閉原則(Open Closed Principle)是程式設計中最基礎、最重要的設計原則

2) 一個軟體實體如類,模組和函式應該對擴充套件開放(對提供方),對修改關閉(對使用 方)。用抽象構建框架,用實現擴充套件細節。

3) 當軟體需要變化時,儘量通過擴充套件軟體實體的行為來實現變化,而不是通過修改已 有的程式碼來實現變化。

4) 程式設計中遵循其它原則,以及使用設計模式的目的就是遵循開閉原則。

 

優點

1) 優點是比較好理解,簡單易操作。

2) 缺點是違反了設計模式的ocp原則,即對擴充套件開放(提供方),對修改關閉(使用方)。 即當我們給類增加新功能的時候,儘量不修改程式碼,或者儘可能少修改程式碼.

 

在設計類的時候儘量不要用if 分支判斷去例項化型別

定義一個基礎抽象類,定義一個抽象公共方法,比如畫圖類,定義一個draw方法,一種判斷形狀的變數

有1.三角形,2.圓形,3.正方形三個類,就繼承這基礎抽象類,分別實現draw方法和判斷形狀變數

然後可以定義一個工廠類,定義一個tool工具類,工具類 型別為 基礎抽象類 型別,

在工具類的實現

傳入一個1代表三角形,

獲取形狀變數進行判斷

在例項化這個三角形類

 

然後需要一個五角星型別

建立並繼承基礎類,實現draw方法,構造方法更改形狀變數

然後在去工廠類在加一條if判斷

在進行測試

這種耦合性非常高

 

改正

將三角形圓形正方形 例項化放入tool入參即可列印

然後需要一個五角星型別

只需要建立一個五角星類,繼承並實現這個方法即可,對程式碼耦合性很低

 

總結

能擴充套件寫就擴充套件,少改以前的程式碼達到效果,在建立設計的時候就要考慮到位