最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ocp開閉原則_動力節(jié)點Java學院整理

 更新時間:2017年08月04日 10:28:48   作者:muzongyan  
這篇文章主要為大家詳細介紹了ocp開閉原則的相關資料,ocp開閉原則指導我們?nèi)绾谓⒁粋€穩(wěn)定的、靈活的系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下

開閉原則(Open Closed Principle)是Java世界里最基礎的設計原則,它指導我們?nèi)绾谓⒁粋€穩(wěn)定的、靈活的系統(tǒng)。

定義:

一個軟件實體如類、模塊和函數(shù)應該對擴展開放,對修改關閉。
Softeware entities like classes,modules and functions should be open for extension but closed for modifications. 

開閉原則的含義是說一個軟件實體應該通過擴展來實現(xiàn)變化,而不是通過修改已有代碼來實現(xiàn)變化。
軟件實體包括以下幾個部分:

  • 項目或軟件產(chǎn)品中按照一定的邏輯規(guī)則劃分的模塊
  • 抽象和類
  • 方法

開閉原則是為軟件實體的未來事物而制定的對現(xiàn)行開發(fā)設計進行約束的一個原則。 

注意:開閉原則對擴展開放,對修改關閉,并不意味著不做任何修改,低層模塊的變更,必然要有高層模塊進行耦合,否則就是一個孤立無意義的代碼片段了。 

變化的類型:

  • 邏輯變化
  • 子模塊變化
  • 可見試圖變化

一個項目的基本路徑應該是這樣的:項目開發(fā)、重構、測試、投產(chǎn)、運維,其中的重構可以對原有的設計和代碼進行修改,運維盡量減少對原有代碼修改,保持歷史代碼的純潔性,提高系統(tǒng)的穩(wěn)定性。 

開閉原則的重要性:

開閉原則對測試的影響

開閉原則可是保持原有的測試代碼仍然能夠正常運行,我們只需要對擴展的代碼進行測試就可以了。

開閉原則可以提高復用性

在面向對象的設計中,所有的邏輯都是從原子邏輯組合而來的,而不是在一個類中獨立實現(xiàn)一個業(yè)務邏輯。只有這樣代碼才可以復用,粒度越小,被復用的可能性就越大。

開閉原則可以提高可維護性

面向對象開發(fā)的要求 

如何使用開閉原則:

抽象約束

第一,通過接口或者抽象類約束擴展,對擴展進行邊界限定,不允許出現(xiàn)在接口或抽象類中不存在的public方法;
第二,參數(shù)類型、引用對象盡量使用接口或者抽象類,而不是實現(xiàn)類;
第三,抽象層盡量保持穩(wěn)定,一旦確定即不允許修改。

元數(shù)據(jù)(metadata)控制模塊行為

元數(shù)據(jù)就是用來描述環(huán)境和數(shù)據(jù)的數(shù)據(jù),通俗地說就是配置參數(shù),參數(shù)可以從文件中獲得,也可以從數(shù)據(jù)庫中獲得。
Spring容器就是一個典型的元數(shù)據(jù)控制模塊行為的例子,其中達到極致的就是控制反轉(Inversion of Control)

制定項目章程

在一個團隊中,建立項目章程是非常重要的,因為章程中指定了所有人員都必須遵守的約定,對項目來說,約定優(yōu)于配置。

封裝變化

對變化的封裝包含兩層含義:
第一,將相同的變化封裝到一個接口或者抽象類中;
第二,將不同的變化封裝到不同的接口或抽象類中,不應該有兩個不同的變化出現(xiàn)在同一個接口或抽象類中。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 深入了解Java File分隔符和Path分隔符的使用

    深入了解Java File分隔符和Path分隔符的使用

    不同的操作系統(tǒng)使用不同的字符作為文件和路徑分隔符。當我們的應用程序需要在多個平臺上運行時,我們需要正確處理這些問題。Java幫助我們選擇一個合適的分隔符,本文就來聊聊Java中File分隔符和 Path分隔符的使用
    2022-07-07
  • jar命令修改jar包中的application.yml配置文件

    jar命令修改jar包中的application.yml配置文件

    本文主要介紹了jar命令修改jar包中的application.yml配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • java String拼接時的問題匯總

    java String拼接時的問題匯總

    在本篇文章里小編給大家整理的是關于java String拼接時的問題匯總,有需要的朋友們可以參考下。
    2020-02-02
  • 淺談Java基準性能測試之JMH

    淺談Java基準性能測試之JMH

    JMH是Java Microbenchmark Harness的簡稱,一個針對Java做基準測試的工具。想準確的對一段代碼做基準性能測試并不容易,因為JVM層面在編譯期、運行時對代碼做很多優(yōu)化,當代碼塊處于整個系統(tǒng)中運行時并不一定會生效,產(chǎn)生錯誤的基準測試結果,這個問題就是JMH要解決的
    2021-06-06
  • 詳解AngularJs與SpringMVC簡單結合使用

    詳解AngularJs與SpringMVC簡單結合使用

    本篇文章主要介紹了AngularJs與SpringMVC簡單結合使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java8接口默認靜態(tài)方法及重復注解原理解析

    Java8接口默認靜態(tài)方法及重復注解原理解析

    這篇文章主要介紹了Java8接口默認靜態(tài)方法及重復注解原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java Spring Bean的生命周期管理詳解

    Java Spring Bean的生命周期管理詳解

    這篇文章主要為大家介紹了Java Spring Bean的生命周期管理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • SpringBoot應用監(jiān)控Actuator使用隱患及解決方案

    SpringBoot應用監(jiān)控Actuator使用隱患及解決方案

    SpringBoot的Actuator 模塊提供了生產(chǎn)級別的功能,比如健康檢查,審計,指標收集,HTTP 跟蹤等,幫助我們監(jiān)控和管理Spring Boot 應用,本文將給大家介紹SpringBoot應用監(jiān)控Actuator使用隱患及解決方案,需要的朋友可以參考下
    2024-07-07
  • 基于SpringBoot實現(xiàn)自動裝配返回屬性的設計思路

    基于SpringBoot實現(xiàn)自動裝配返回屬性的設計思路

    這篇文章主要介紹了基于SpringBoot實現(xiàn)自動裝配返回屬性,這里涉及到的技術知識點有注解解析器,為什么用ResponseBodyAdvice這里解析?不在Filter,Interceptors,本文結合示例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2022-03-03
  • SpringBoot接入輕量級分布式日志框架(GrayLog)的操作方法

    SpringBoot接入輕量級分布式日志框架(GrayLog)的操作方法

    這篇文章主要介紹了SpringBoot接入輕量級分布式日志框架(GrayLog)的方法,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03

最新評論

虎林市| 麻栗坡县| 贺州市| 项城市| 海安县| 余江县| 上犹县| 涟水县| 佛学| 高陵县| 四平市| 甘孜| 富宁县| 荆门市| 河津市| 鞍山市| 精河县| 吐鲁番市| 太白县| 赫章县| 淮北市| 海原县| 永登县| 南华县| 镇赉县| 防城港市| 左权县| 凤山县| 东至县| 青川县| 廊坊市| 通榆县| 东平县| 怀集县| 湖州市| 安平县| 凤阳县| 贵德县| 莒南县| 泸溪县| 绥江县|