国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設計模式——開閉原則

這篇具有很好參考價值的文章主要介紹了設計模式——開閉原則。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

基本介紹

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

  2. 一個軟件實體如類,模塊和函數(shù)應該對擴展開放(對提供方),對修改關閉(對使用方)。用抽象構建框架,用實現(xiàn)擴展細節(jié)。

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

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

看下面一段代碼

  • 看一個畫圖形的功能。
    類圖設計,如下

設計模式——開閉原則,設計模式,設計模式,開閉原則

代碼展示:

https://gitee.com/luan_hao/design-pattern/blob/master/src/main/java/com/lh/principle/ocp/Ocp.java

方式 1 的優(yōu)缺點

  1. 優(yōu)點是比較好理解,簡單易操作。
  2. 缺點是違反了設計模式的 ocp 原則,即對擴展開放(提供方),對修改關閉(使用方)。即當我們給類增加新功能的時候,盡量不修改代碼,或者盡可能少修改代碼.
  3. 比如我們這時要新增加一個圖形種類 三角形,我們需要做如下修改,修改的地方較多

改進的思路分析

思路:把創(chuàng)建 Shape 類做成抽象類,并提供一個抽象的 draw 方法,讓子類去實現(xiàn)即可,這樣我們有新的圖形種類時,只需要讓新的圖形類繼承 Shape,并實現(xiàn) draw 方法即可,使用方的代碼就不需要修 -> 滿足了開閉原則

改進后的代碼:

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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C#設計模式之--六大原則 開閉原則

    設計模式六大原則是單一職責原則、里氏替換原則、依賴倒置原則、接口隔離原則、迪米特法則、開閉原則。它們不是要我們刻板的遵守,而是根據(jù)實際需要靈活運用。只要對它們的遵守程度在一個合理的范圍內(nèi),努為做到一個良好的設計。本文主要介紹一下.NET(C#) 開閉原則

    2024年02月10日
    瀏覽(26)
  • 【23種設計模式】開閉原則

    個人主頁 :金鱗踏雨 個人簡介 :大家好,我是 金鱗 ,一個初出茅廬的Java小白 目前狀況 :22屆普通本科畢業(yè)生,幾經(jīng)波折了,現(xiàn)在任職于一家國內(nèi)大型知名日化公司,從事Java開發(fā)工作 我的博客 :這里是CSDN,是我學習技術,總結知識的地方。希望和各位大佬交流,共同進

    2024年02月08日
    瀏覽(29)
  • 貫穿設計模式第二話--開閉原則

    貫穿設計模式第二話--開閉原則

    ?????? 茫茫人海千千萬萬,感謝這一刻你看到了我的文章,感謝觀賞,大家好呀,我是最愛吃魚罐頭,大家可以叫魚罐頭呦~?????? 從今天開始,將開啟一個專欄, 【貫穿設計模式】 ,設計模式是對軟件設計中普遍存在(反復出現(xiàn))的各種問題,所提出的解決方案,是

    2023年04月11日
    瀏覽(28)
  • 設計模式之開閉原則:如何優(yōu)雅地擴展軟件系統(tǒng)

    設計模式之開閉原則:如何優(yōu)雅地擴展軟件系統(tǒng)

    在現(xiàn)代軟件開發(fā)中,設計模式是解決常見問題的最佳實踐。其中,開閉原則作為面向?qū)ο笤O計的六大基本原則之一,為軟件系統(tǒng)的可維護性和擴展性提供了強大的支持。本文將深入探討開閉原則的核心理念,以及如何在實際項目中運用這一原則,以便更好地設計軟件系統(tǒng)。

    2024年01月18日
    瀏覽(24)
  • 【設計模式】設計原則-里氏替換原則

    定義 任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。 通俗理解:子類可以擴展父類的功能,但不能改變父類原有的功能。 換句話說,子類繼承父類時,除添加新的方法完成新增功能外,盡量不要重寫父類的方法。 針對的問題 主要作用就是規(guī)范繼承時子類的一些書寫規(guī)則。

    2024年02月14日
    瀏覽(30)
  • 前端設計模式和設計原則之設計原則

    1 開閉原則 該原則指出軟件實體(類、模塊、函數(shù)等)應該 對擴展開放,對修改關閉 。也就是說,在添加新功能時,應該通過擴展現(xiàn)有代碼來實現(xiàn),而不是直接修改已有的代碼。這樣可以確?,F(xiàn)有代碼的穩(wěn)定性,并且減少對其他部分的影響。 在上述例子中,有一個原始功能

    2024年02月07日
    瀏覽(51)
  • 【Java 設計模式】設計原則之開放封閉原則

    在軟件開發(fā)中,設計原則是創(chuàng)建靈活、可維護和可擴展軟件的基礎。 這些原則為我們提供了指導方針,幫助我們構建高質(zhì)量、易理解的代碼。 ?單一職責原則(SRP) ?開放/封閉原則(OCP) ?里氏替換原則(LSP) ?依賴倒置原則(DIP) ?接口隔離原則(ISP) ?合成/聚合復

    2024年02月02日
    瀏覽(61)
  • 【Java 設計模式】設計原則之里氏替換原則

    在軟件開發(fā)中,設計原則是創(chuàng)建靈活、可維護和可擴展軟件的基礎。 這些原則為我們提供了指導方針,幫助我們構建高質(zhì)量、易理解的代碼。 ?單一職責原則(SRP) ?開放/封閉原則(OCP) ?里氏替換原則(LSP) ?依賴倒置原則(DIP) ?接口隔離原則(ISP) ?合成/聚合復

    2024年01月20日
    瀏覽(37)
  • 設計模式——設計模式以及六大原則概述

    設計模式——設計模式以及六大原則概述

    設計模式代表有經(jīng)驗的面向?qū)ο筌浖_發(fā)人員使用的最佳實踐。 設計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。 這些解決方案是由許多軟件開發(fā)人員在相當長的時間內(nèi)通過試錯獲得的。 在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四

    2024年02月13日
    瀏覽(22)
  • 設計模式的設計原則

    設計模式的設計原則

    為什么需要設計模式? 我的理解設計模式就是一種針對某種問題的套路,是一套被反復使用,多數(shù)人所知曉的,經(jīng)過分類編目的,代碼設計經(jīng)驗的總結。 1.開閉原則 1.1 定義: ????一個軟件實體應當對擴展開放,對修改關閉,即軟件實體應盡量在不修改原有代碼下進行擴展

    2024年02月09日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包