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

Java設(shè)計(jì)模式常用的七大原則總結(jié)

 更新時(shí)間:2021年06月02日 15:17:53   作者:antherd  
今天給大家總結(jié)了Java設(shè)計(jì)模式的七大原則,主要有單一職責(zé)原則,接口隔離原則,依賴倒轉(zhuǎn)原則,里氏替換原則等,文中有非常詳細(xì)的介紹,需要的朋友可以參考下

一、設(shè)計(jì)模式常用的七大原則

單一職責(zé)原則:一個(gè)類應(yīng)該只負(fù)責(zé)一項(xiàng)職責(zé)

接口隔離原則:客戶端不應(yīng)該依賴它不需要的接口,即一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口上

依賴倒轉(zhuǎn)原則

里氏替換原則

開閉原則

迪米特法則

合成復(fù)用原則

二、單一職責(zé)原則

1. 單一職責(zé)原則注意事項(xiàng)和細(xì)節(jié) 降低類的復(fù)雜度,一個(gè)類只負(fù)責(zé)一項(xiàng)職責(zé)

2.提高類的可讀性,可維護(hù)性

3.降低變更引起的風(fēng)險(xiǎn)

4.通常情況下,我們應(yīng)當(dāng)遵守單一職責(zé)原則,只有邏輯足夠簡單,才可以在代碼級(jí)違反單一職責(zé)原則;只有類中方法數(shù)量足夠少,可以在方法級(jí)別保持單一職責(zé)原則

三、接口隔離原則

接口隔離原則注意事項(xiàng)和細(xì)節(jié)

segregation_origin

segregation_origin

segregation_improve

segregation_improve

四、依賴倒轉(zhuǎn)原則

依賴倒轉(zhuǎn)原則思想

1.高層模塊不應(yīng)該依賴底層模塊,二者都應(yīng)該依賴其抽象

2.抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象

3.依賴倒轉(zhuǎn)的中心思想是面向接口編程

4.依賴倒轉(zhuǎn)原則是基于這樣的設(shè)計(jì)理念:相對(duì)于細(xì)節(jié)的多邊性,抽象的東西要穩(wěn)定的多。以抽象為基礎(chǔ)搭建的架構(gòu)比以細(xì)節(jié)為基礎(chǔ)的架構(gòu)要穩(wěn)定的多。在java中,抽象指的是接口或抽象類,細(xì)節(jié)就是具體的實(shí)現(xiàn)類

5.使用接口或抽象類的目的是指定好規(guī)范,而不涉及任何具體的操作,把展示細(xì)節(jié)的任務(wù)交給他們的實(shí)現(xiàn)類去完成

依賴關(guān)系傳遞的三種方式和應(yīng)用案例

1.接口傳遞

2.構(gòu)造方法傳遞

3.setter方法傳遞

依賴倒轉(zhuǎn)原則注意事項(xiàng)和細(xì)節(jié)

1.低層模塊盡量都要有抽象類或接口,或者兩者都有,程序穩(wěn)定性更好

2.變量的聲明類型盡量是抽象類或接口,這樣我們的變量引用和實(shí)際對(duì)象間,就存在一個(gè)緩沖層,利于程序拓展和優(yōu)化

3.繼承時(shí)遵循里氏替換原則

五、里氏替換原則

 OO中的繼承性的思考和說明

1.繼承包含這樣一層含義:父類中凡是已經(jīng)實(shí)現(xiàn)好的方法,實(shí)際上是在設(shè)定規(guī)范和契約,雖然它不強(qiáng)制要求所有的子類必須遵循這些契約,但是如果子類對(duì)這些已經(jīng)實(shí)現(xiàn)的方法任意修改,就會(huì)對(duì)整個(gè)繼承體系造成破壞

2.繼承在給程序設(shè)計(jì)帶來便利的同時(shí),也帶來了弊端。比如使用繼承會(huì)給程序帶來侵入性,程序的可移植性降低,增加對(duì)象間的耦合性,如果一個(gè)類被其他的類所繼承,則當(dāng)這個(gè)類需要修改時(shí),必須考慮到所有的子類,并且父類修改后,所涉及到子類的功能可能產(chǎn)生故障

里氏替換原則思想

1.如果對(duì)每個(gè)類型為T1的對(duì)象o1,都有類型為T2的對(duì)象o2,使得以T1定義的所有程序P在所有的對(duì)象o1都替換成o2時(shí),程序P的行為沒有發(fā)生變化,那么類型T2是類型T1的子類型。換句話說,所有引用基類的地方必須能透明地使用其子類的對(duì)象

2.在使用繼承時(shí),遵循里氏替換原則,在子類中盡量不要重寫父類的方法

3.里氏替換原則告訴我們,繼承實(shí)際上讓兩個(gè)類耦合性增強(qiáng)了,在適當(dāng)?shù)那闆r下,可以通過聚合,組合,依賴來解決問題

liskov

liskov_origin

依賴

liskov_improve依賴

聚合

liskov_improve聚合

組合

liskov_improve組合

六、開閉原則

基本介紹

1.一個(gè)軟件實(shí)體如類,模塊和函數(shù)應(yīng)該對(duì)擴(kuò)展開放(對(duì)提供方),對(duì)修改關(guān)閉(對(duì)使用方)。用抽象構(gòu)建框架,是實(shí)現(xiàn)擴(kuò)展細(xì)節(jié)

2.當(dāng)軟件需要變化時(shí),盡量通過擴(kuò)展軟件實(shí)體的行為為實(shí)現(xiàn)變化,而不是通過修改已有的代碼來實(shí)現(xiàn)變化

七、迪米特法則

基本介紹

1.一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象保持最少的了解

2.類與類關(guān)系越密切,耦合度越大

3.迪米特法則又叫最少知道原則,即一個(gè)類對(duì)自己依賴的類知道越少越好。也就是說,對(duì)于被依賴的類不管多么復(fù)雜,都盡量將邏輯封裝在類的內(nèi)部。對(duì)外除了提供的public方法,不對(duì)外泄露任何信息

八、合成復(fù)用原則

基本介紹

原則是盡量使用合成/聚合的方式,而不是使用繼承

到此這篇關(guān)于Java設(shè)計(jì)模式常用的七大原則總結(jié)的文章就介紹到這了,更多相關(guān)Java設(shè)計(jì)模式七大原則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java調(diào)用HTTPS接口實(shí)現(xiàn)繞過SSL認(rèn)證

    Java調(diào)用HTTPS接口實(shí)現(xiàn)繞過SSL認(rèn)證

    SSL認(rèn)證是確保通信安全的重要手段,有的時(shí)候?yàn)榱朔奖阏{(diào)用,我們會(huì)繞過SSL認(rèn)證,這篇文章主要介紹了Java如何調(diào)用HTTPS接口實(shí)現(xiàn)繞過SSL認(rèn)證,需要的可以參考下
    2023-11-11
  • SpringCloud Hystrix的使用

    SpringCloud Hystrix的使用

    這篇文章主要介紹了SpringCloud Hystrix的使用,幫助大家更好的理解和學(xué)習(xí)使用SpringCloud,感興趣的朋友可以了解下
    2021-04-04
  • SQL注入攻擊及其在SpringBoot中使用MyBatisPlus的防范策略的方法

    SQL注入攻擊及其在SpringBoot中使用MyBatisPlus的防范策略的方法

    本文介紹了如何使用SpringBoot整合JavaDeeplearning4j構(gòu)建一個(gè)文本摘要生成系統(tǒng),該系統(tǒng)能夠自動(dòng)從長篇文本中提取關(guān)鍵信息,生成簡潔的摘要,幫助用戶快速了解文本的主要內(nèi)容,系統(tǒng)使用LSTM神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并通過SpringBoot創(chuàng)建RESTful?API進(jìn)行調(diào)用
    2024-11-11
  • SpringCloud HystrixDashboard服務(wù)監(jiān)控詳解

    SpringCloud HystrixDashboard服務(wù)監(jiān)控詳解

    Hystrix Dashboard 是Spring Cloud中查看Hystrix實(shí)例執(zhí)行情況的一種儀表盤組件,支持查看單個(gè)實(shí)例和查看集群實(shí)例,本文將對(duì)其服務(wù)監(jiān)控學(xué)習(xí)
    2022-11-11
  • Java編寫的24點(diǎn)紙牌游戲

    Java編寫的24點(diǎn)紙牌游戲

    這篇文章主要介紹了Java編寫的24點(diǎn)紙牌游戲的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • 使用Spring Data Redis實(shí)現(xiàn)數(shù)據(jù)緩存的方法

    使用Spring Data Redis實(shí)現(xiàn)數(shù)據(jù)緩存的方法

    目前在系統(tǒng)架構(gòu)設(shè)計(jì)中使用Redis實(shí)現(xiàn)緩存,這篇文章主要介紹了使用Spring Data Redis實(shí)現(xiàn)數(shù)據(jù)緩存的方法,具有一定的參考價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Java 判斷線程池所有任務(wù)是否執(zhí)行完畢的操作

    Java 判斷線程池所有任務(wù)是否執(zhí)行完畢的操作

    這篇文章主要介紹了Java 判斷線程池所有任務(wù)是否執(zhí)行完畢的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Spring你不知道的一種解耦模式

    Spring你不知道的一種解耦模式

    本文介紹一種方法,服務(wù)定位模式Service?Locator?Pattern來解決,它幫助我們消除緊耦合實(shí)現(xiàn)及其依賴性,并提出將服務(wù)與其具體類解耦
    2023-01-01
  • 詳解Java設(shè)計(jì)模式——迭代器模式

    詳解Java設(shè)計(jì)模式——迭代器模式

    這篇文章主要介紹了Java設(shè)計(jì)模式——迭代器模式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Error creating bean with name dataSourceScriptDatabaseInitializer問題

    解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Error creating bean with&nb

    這篇文章主要介紹了解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Error creating bean with name dataSourceScriptDatabaseInitializer問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2024-03-03

最新評(píng)論

宿迁市| 双桥区| 白沙| 长葛市| 桦南县| 台湾省| 蕉岭县| 安溪县| 同德县| 高唐县| 洞头县| 建宁县| 和平县| 资源县| 根河市| 宁波市| 潼南县| 天镇县| 榕江县| 衡南县| 靖西县| 金塔县| 恩平市| 丹阳市| 唐山市| 卢龙县| 中牟县| 铜山县| 阳江市| 玛沁县| 冷水江市| 突泉县| 嘉定区| 澄迈县| 永兴县| 荃湾区| 平谷区| 云阳县| 萨嘎县| 旅游| 鲁山县|