基本介紹
-
開閉原則(Open Closed Principle)是編程中最基礎、最重要的設計原則
-
一個軟件實體如類,模塊和函數(shù)應該對擴展開放(對提供方),對修改關閉(對使用方)。用抽象構建框架,用實現(xiàn)擴展細節(jié)。
-
當軟件需要變化時,盡量通過擴展軟件實體的行為來實現(xiàn)變化,而不是通過修改已有的代碼來實現(xiàn)變化。
-
編程中遵循其它原則,以及使用設計模式的目的就是遵循開閉原則
看下面一段代碼
- 看一個畫圖形的功能。
類圖設計,如下
代碼展示:
https://gitee.com/luan_hao/design-pattern/blob/master/src/main/java/com/lh/principle/ocp/Ocp.java
方式 1 的優(yōu)缺點
- 優(yōu)點是比較好理解,簡單易操作。
- 缺點是違反了設計模式的 ocp 原則,即對擴展開放(提供方),對修改關閉(使用方)。即當我們給類增加新功能的時候,盡量不修改代碼,或者盡可能少修改代碼.
- 比如我們這時要新增加一個圖形種類 三角形,我們需要做如下修改,修改的地方較多
改進的思路分析
思路:把創(chuàng)建 Shape 類做成抽象類,并提供一個抽象的 draw 方法,讓子類去實現(xiàn)即可,這樣我們有新的圖形種類時,只需要讓新的圖形類繼承 Shape,并實現(xiàn) draw 方法即可,使用方的代碼就不需要修 -> 滿足了開閉原則
改進后的代碼:文章來源:http://www.zghlxwxcb.cn/news/detail-668388.html
https://gitee.com/luan_hao/design-pattern/blob/master/src/main/java/com/lh/principle/ocp/improve/Ocp.java文章來源地址http://www.zghlxwxcb.cn/news/detail-668388.html
到了這里,關于設計模式——開閉原則的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!