設計模式六大原則之開閉原則


  這是在我大學學習過程中,老師給我講的第一個設計原則:開閉原則,至今為止,我只記住了一句話:程序對修改關閉,對擴展開放。接下來得好好理解一下這句話

一、開閉原則

  開閉原則是編程中最基礎、最重要的設計原則

  基本介紹:

    (1)一個軟件實體如類,模塊和函數應該對擴展開放(對於提供方來說),對修改關閉(對於使用方來說)。用抽象構建框架,用實現擴展細節。

    (2)當軟件需要變化時,盡量通過擴展軟件實體的行為來實現變化,而不是通過修改已有的代碼來實現變化。

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

二、案例演示

  要求:實現一個畫圖形的功能

  

  案例地址:https://github.com/Simple-Coder/design-pattern

 1、基礎版本代碼實現

分析: 

  1、優點:比較好理解,簡單易操作

  2、缺點:違反了開閉原則(即對修改關閉(使用方),對擴展開放(提供方)),即當我們給類增加新功能的時候,盡量不修改代碼或盡可能少修改代碼。

2、基礎班新增功能,畫三角形

  可以發現,當新增畫三角形時,需要做如上述修改,修改的地方較多。

3、基於OCP原則改進

  改進思路將Shape類改進為抽象類,並提供一個抽象方法draw方法,讓子類去實現即可,這樣有新的圖形種類時,只需要讓新的圖形類繼承Shape,並實現draw方法即可,使用方的代碼就不需要修改,滿足開閉原則。

4、基於OCP新增功能:畫三角形

 分析:代碼滿足OCP原則,對修改關閉,對擴展開放


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM