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

Java設計模式常用原則解析

 更新時間:2020年05月26日 11:09:45   作者:懶惰的星期六  
這篇文章主要介紹了Java設計模式常用原則解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1.單一職責原則 每一個類負責一個職責(一個類只有一個方法)

2.里氏替換原則 所有引用基類的地方都能透明的使用其子類的對象。

  問題來了:

  比如原來

  class A{
    fun();//完成P1功能
  }

  現(xiàn)在需要添加新功能

  class B extends A{//A的子類B實現(xiàn)了fun的功能)
    fun();完成功能為P(原來的P1功能加上新增的P2功能)
  }

  則,在子類B完成新功能P2的時候可能會導致原有功能P1發(fā)生故障

  解決辦法

  當使用繼承的時候,除了添加新的方法來完成新功能P2之外,盡量不要重寫父類A的方法,也盡量不要重載父類A 的方法

3.依賴倒置原則(核心思想,面向接口編程)

定義:高層模塊不應該以來底層模塊,二者都應該依賴其抽象;抽象不應該依賴細節(jié),細節(jié)應該依賴抽象;

問題:

  類A(高層模塊)直接依賴B(低層模塊)

eg:class A{
    public void fun(B b){};
  }

  現(xiàn)在想要把類A的依賴改為C,則必須修改類A的代碼為

eg:class A{
    public void fun(C c){};
  }

  解決辦法:

  類B和類C都實現(xiàn)接口Interface D;

  類A依賴接口D

 eg:class A{
    public void fun(D d){};
   }

  這樣在使用類A的fun方法時可以這樣使用fun(new B());或者fun(new C());

4.接口隔離原則

將臃腫的接口才氛圍獨立的幾個接口,這樣子類在實現(xiàn)該接口時就不必要實現(xiàn)臃腫接口的所有的抽象方法

5.迪米特法則(最少知道法則)

  降低類與類之間的耦合度,從而減少當一個類改變時對另一個類造成的影響。

  簡單來說,就是一個類對自己以來的類知道的越少越好。對于被以來的類,無論邏輯多么復雜,盡可能的將邏輯封裝在類的內部,對外提供一個public的方法就行了。

  更簡單的定義:至于直接的朋友(稱出現(xiàn)成員變量、方法參數(shù)、方法返回值中的類為直接朋友,出現(xiàn)在局部變量中的類不是直接的朋友)進行通信。

  (依賴的三種方式,方法參數(shù),局部變量-方法內的變量,靜態(tài)變量-方法中調用某個類的靜態(tài)方法)

6.開閉原則

  一個軟件實體類、模塊、和函數(shù)應該對擴展開放,對修改關閉。

  問題:當軟件升級維護時,隊友俺有代碼進行修改,可能會給舊代碼引入錯誤。

  解決辦法:當軟件需要變化時,盡可能通過擴展軟件實體的行為來實現(xiàn)變化,兒不是通過修改已有的代碼來實現(xiàn)變化。

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

相關文章

  • Java8 新特性Lambda表達式實例詳解

    Java8 新特性Lambda表達式實例詳解

    這篇文章主要介紹了Java8 新特性Lambda表達式實例詳解的相關資料,需要的朋友可以參考下
    2017-03-03
  • idea啟動springboot報錯: 找不到或無法加載主類問題

    idea啟動springboot報錯: 找不到或無法加載主類問題

    這篇文章主要介紹了idea啟動springboot報錯: 找不到或無法加載主類問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java中的OpenTracing使用實例

    Java中的OpenTracing使用實例

    這篇文章主要介紹了Java中的OpenTracing使用實例,主要的OpenTracing API將所有主要組件聲明為接口以及輔助類,例如Tracer,Span,SpanContext,Scope,ScopeManager,Format(用映射定義通用的SpanContext注入和提取格式),需要的朋友可以參考下
    2024-01-01
  • Spring?Security短信驗證碼實現(xiàn)詳解

    Spring?Security短信驗證碼實現(xiàn)詳解

    本文主要介紹了Spring?Security短信驗證碼的實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11
  • 詳解IDEA使用Maven項目不能加入本地Jar包的解決方法

    詳解IDEA使用Maven項目不能加入本地Jar包的解決方法

    這篇文章主要介紹了詳解IDEA使用Maven項目不能加入本地Jar包的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • xml 的特殊字符的處理方法

    xml 的特殊字符的處理方法

    在xml中,有一些符號作為XML 的標記符號,一些特定情況下,屬性值必須帶有這些特殊符號?!∠旅嬷饕侵v解一些常用的特殊符號的處理
    2016-07-07
  • Java 數(shù)據結構中二叉樹前中后序遍歷非遞歸的具體實現(xiàn)詳解

    Java 數(shù)據結構中二叉樹前中后序遍歷非遞歸的具體實現(xiàn)詳解

    樹是一種重要的非線性數(shù)據結構,直觀地看,它是數(shù)據元素(在樹中稱為結點)按分支關系組織起來的結構,很象自然界中的樹那樣。樹結構在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機構都可用樹形象表示
    2021-11-11
  • 學java得這樣學,學習確實也得這樣

    學java得這樣學,學習確實也得這樣

    學java得這樣學,學習東西確實也得這樣
    2008-02-02
  • Java9新特性Module模塊化編程示例演繹

    Java9新特性Module模塊化編程示例演繹

    這篇文章主要為大家介紹了Java9新特性Module模塊化編程的示例演繹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-03-03
  • 詳解springboot-mysql-pagehelper分頁插件集成

    詳解springboot-mysql-pagehelper分頁插件集成

    這篇文章主要介紹了springboot-mysql-pagehelper分頁插件集成,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07

最新評論

万年县| 张北县| 临邑县| 江达县| 曲松县| 水富县| 邓州市| 尼玛县| 油尖旺区| 大港区| 万州区| 高阳县| 巴青县| 新营市| 拜城县| 晋城| 昂仁县| 进贤县| 寿阳县| 彭阳县| 马龙县| 汉川市| 淮滨县| 铜梁县| 双牌县| 交城县| 马尔康县| 丰原市| 和顺县| 武功县| 丁青县| 建昌县| 阜新| 新化县| 凌海市| 黄浦区| 玛纳斯县| 江永县| 大新县| 修文县| 会同县|