一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > java培訓(xùn)教程分享:Java應(yīng)用程序開發(fā)中的SOLID設(shè)計(jì)原則

java培訓(xùn)教程分享:Java應(yīng)用程序開發(fā)中的SOLID設(shè)計(jì)原則

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2021-12-29 17:18:00 1640769480

  java技術(shù)需要學(xué)的東西有很多,本期小編為大家介紹的java培訓(xùn)教程就是關(guān)于“Java應(yīng)用程序開發(fā)中的SOLID設(shè)計(jì)原則”的內(nèi)容,希望本篇教程能夠給大家?guī)韼椭?/span>

jj

  java培訓(xùn)教程分享:Java應(yīng)用程序開發(fā)中的SOLID設(shè)計(jì)原則

  SOLID指的是面向?qū)ο缶幊讨械奈鍡l設(shè)計(jì)原則,旨在減少代碼腐爛,提高軟件的價(jià)值、功能和可維護(hù)性。堅(jiān)實(shí)的原則有助于用戶開發(fā)耦合較少的代碼。如果代碼是緊密耦合的,那么一組類是相互依賴的。為了更好的可維護(hù)性和可讀性,應(yīng)該避免這種情況。想了解有關(guān)SOLID設(shè)計(jì)原則更多詳細(xì)信息,建議參加Java培訓(xùn),通過系統(tǒng)全面的學(xué)習(xí),可以快速提升自己。

  1.單一責(zé)任原則(SRP)

  單一責(zé)任原則(SRP)規(guī)定,一個(gè)類改變的原因不應(yīng)超過一個(gè)。這意味著代碼中的每個(gè)類或類似結(jié)構(gòu)應(yīng)該只有一項(xiàng)任務(wù)要做。類的每件事都應(yīng)該與這個(gè)單一的目的相關(guān),這并不意味著類應(yīng)該只包含一個(gè)方法或?qū)傩浴?/p>

  可以有很多成員,只要他們與單一責(zé)任相關(guān)??赡苁牵?dāng)發(fā)生更改的一個(gè)原因時(shí),類的多個(gè)成員可能需要修改,也可能是多個(gè)類需要更新。

  混合責(zé)任也使類更難理解和測(cè)試,降低了凝聚力。解決這一問題的最簡單方法是將類劃分為三個(gè)不同的類,每個(gè)類只有一個(gè)職責(zé):數(shù)據(jù)庫訪問、計(jì)算薪酬和報(bào)告,所有這些都是分開的。

  2.開放-封閉原則(OCP)

  開放-封閉原則(OCP)規(guī)定類應(yīng)該為擴(kuò)展而打開,但為修改而關(guān)閉。“開放擴(kuò)展”意味著你應(yīng)該設(shè)計(jì)類,以便在生成新需求時(shí)添加新功能。“為修改而關(guān)閉”意味著一旦開發(fā)了一個(gè)類,就不應(yīng)該修改它,除非是為了糾正錯(cuò)誤。在java培訓(xùn)中,不僅有理論知識(shí)的課程,還有大量實(shí)戰(zhàn)項(xiàng)目學(xué)習(xí),讓你在實(shí)踐中真正掌握SOLID設(shè)計(jì)原則知識(shí)和技能。

  該原則的這兩部分似乎相互矛盾。但是,如果正確地構(gòu)造類及其依賴項(xiàng),則可以添加功能,而無需編輯現(xiàn)有源代碼。

  通常,你通過引用依賴項(xiàng)的抽象(例如接口或抽象類)而不是使用具體類來實(shí)現(xiàn)這一點(diǎn)??梢酝ㄟ^創(chuàng)建實(shí)現(xiàn)接口的新類來添加功能。

  將OCP應(yīng)用到項(xiàng)目中可以限制在編寫、測(cè)試和調(diào)試源代碼后更改源代碼的需要。這降低了在現(xiàn)有代碼中引入新錯(cuò)誤的風(fēng)險(xiǎn),從而產(chǎn)生更健壯的軟件。

  3.Liskov替換原則(LSP)

  Liskov替換原則(LSP)適用于繼承層次結(jié)構(gòu),指定你應(yīng)該設(shè)計(jì)類,以便在客戶端不知道更改的情況下用子類替換客戶端依賴項(xiàng)。

  因此,所有子類的操作方式都必須與其基類相同。子類的特定功能可能不同,但必須符合基類的預(yù)期行為。要成為真正的行為子類型,子類不僅必須實(shí)現(xiàn)基類的方法和屬性,還必須符合其隱含的行為。

  通常,如果超類型的子類型做了超類型的客戶機(jī)不期望的事情,那么這違反了LSP。想象一個(gè)派生類拋出一個(gè)超類沒有拋出的異常,或者如果一個(gè)派生類有一些意外的副作用?;旧希缮惖男阅懿粦?yīng)該低于基類。

  違反LSP的典型示例是從矩形類派生的方形類。Square類始終假定寬度與高度相等。如果在預(yù)期為矩形的上下文中使用正方形對(duì)象,則可能會(huì)發(fā)生意外行為,因?yàn)椴荒?或者更確切地說不應(yīng)該)單獨(dú)修改正方形的尺寸。想要快速學(xué)會(huì)SOLID設(shè)計(jì)原則技巧,建議報(bào)名參加java培訓(xùn),有明確清晰的學(xué)習(xí)路線,系統(tǒng)規(guī)范的課程,專業(yè)講師面授指導(dǎo)教學(xué),可以在短時(shí)內(nèi)獲得很大提升。

  4.接口隔離原則(ISP)

  接口隔離原則(ISP)規(guī)定,不應(yīng)強(qiáng)迫客戶依賴他們不使用的接口成員。當(dāng)我們有非內(nèi)聚接口時(shí),ISP引導(dǎo)我們創(chuàng)建多個(gè)更小的內(nèi)聚接口。

  應(yīng)用ISP時(shí),類及其依賴項(xiàng)使用緊密關(guān)注的接口進(jìn)行通信,從而最大限度地減少對(duì)未使用成員的依賴,并相應(yīng)地減少耦合。更小的接口更容易實(shí)現(xiàn),提高了靈活性和重用的可能性。由于共享這些接口的類越來越少,因此響應(yīng)接口修改所需的更改數(shù)量也會(huì)減少,從而提高了健壯性。

  5.依賴倒置原則(DIP)

  依賴倒置原則(DIP)規(guī)定高級(jí)模塊不應(yīng)依賴于低級(jí)模塊;它們應(yīng)該依賴于抽象。

  其次,抽象不應(yīng)依賴于細(xì)節(jié);細(xì)節(jié)應(yīng)該取決于抽象。我們的想法是將類隔離在它所依賴的抽象所形成的邊界之后。如果這些抽象背后的所有細(xì)節(jié)都發(fā)生了變化,那么我們的類仍然是安全的。這有助于保持低耦合,使我們的設(shè)計(jì)更易于更改。DIP還允許我們單獨(dú)測(cè)試事物。

  這些原則提供了一個(gè)有價(jià)值的標(biāo)準(zhǔn),指導(dǎo)開發(fā)人員遠(yuǎn)離這種“代碼腐朽”,轉(zhuǎn)而構(gòu)建為客戶提供持久價(jià)值并為從事項(xiàng)目的未來開發(fā)人員提供理智的應(yīng)用程序。

  以上就是為大家介紹的“Java應(yīng)用程序開發(fā)中的SOLID設(shè)計(jì)原則”的相關(guān)java培訓(xùn)教程,希望能夠給大家?guī)韼椭?,?duì)于初學(xué)者來說,參加java培訓(xùn)是一個(gè)很好的學(xué)習(xí)方法,有明確清晰的學(xué)習(xí)路線,有系統(tǒng)全面的教學(xué)課程,可以讓你在短時(shí)間內(nèi)學(xué)有所成,快速上崗。

  可以參考千鋒提供的java學(xué)習(xí)路線,該學(xué)習(xí)路線羅列了各階段完整的java學(xué)習(xí)知識(shí),根據(jù)千鋒提供的java學(xué)習(xí)路線圖,可以讓你對(duì)學(xué)好java開發(fā)需要掌握的知識(shí)有個(gè)清晰的了解,并能快速入門java開發(fā)。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
PHP數(shù)組具的特性有哪些?

一、有序集合PHP數(shù)組是一個(gè)有序的數(shù)據(jù)集合,它可以存儲(chǔ)多個(gè)值,并使用索引來訪問這些值。索引可以是數(shù)字或字符串,允許你以靈活的方式組織和訪...詳情>>

2023-10-13 23:46:55
C語言中定義與聲明的含義是什么?

一、定義的含義在C語言中,定義是指為變量、函數(shù)或類型分配存儲(chǔ)空間并指定其屬性和初始值的過程。定義的主要含義如下:分配存儲(chǔ)空間:定義一個(gè)...詳情>>

2023-10-13 23:32:41
APP開發(fā)中常用的開發(fā)語言都有什么?

一、JavaJava是一種廣泛使用的開發(fā)語言,尤其在Android應(yīng)用開發(fā)中得到了廣泛應(yīng)用。Java具有面向?qū)ο蟮奶匦?,可以?shí)現(xiàn)復(fù)雜的應(yīng)用邏輯和交互效果...詳情>>

2023-10-13 23:29:28
Python的自動(dòng)化測(cè)試框架有哪些?

一、unittestunittest是Python內(nèi)置的測(cè)試框架,它受到Java的JUnit框架的啟發(fā)。unittest提供了一個(gè)面向?qū)ο蟮木幊棠P?,允許開發(fā)人員編寫測(cè)試用...詳情>>

2023-10-13 23:06:20
Web前端開發(fā)工具有哪些?

一、代碼編輯器代碼編輯器是Web前端開發(fā)的基礎(chǔ)工具之一,用于編寫、編輯和修改計(jì)算機(jī)代碼。它通常支持多種編程語言,并提供了一些便捷的功能,...詳情>>

2023-10-13 22:58:11