欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java面向?qū)ο笤O(shè)計原則之單一職責(zé)與依賴倒置原則詳解

 更新時間:2021年10月14日 10:11:09   作者:guoyp2126  
這篇文章主要介紹了java面向?qū)ο笤O(shè)計原則之單一職責(zé)與依賴倒置原則的分析詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進步早日升職加薪

單一職責(zé)概念

不要存在多于一個導(dǎo)致類變更的原因,也就是說每個類應(yīng)該實現(xiàn)單一的職責(zé),否則就應(yīng)該把類拆分。交雜不清的職責(zé)將使得代碼牽一發(fā)而動全身,導(dǎo)致代碼混澀難懂,不易修改、難以擴展和復(fù)用。如:以前開發(fā)C/S程序中的胖客戶端程序,就是將人機交互邏輯、業(yè)務(wù)加工處理邏輯和數(shù)據(jù)庫操作邏輯混合在一起。

實現(xiàn)

單一職責(zé)原則是進行類的劃分和封裝的基本原則,進行類的具體抽象。盡量做到,類的功能單一和清晰化。

1.根據(jù)機能劃分,使用封裝來創(chuàng)建對象之間的分界層,讓設(shè)計者可以在分界層的一側(cè)進行修改,而不會對另一側(cè)產(chǎn)生不良的影響,從而實現(xiàn)層次間的松耦合。
2.當(dāng)前開發(fā)框架一般為分層框架,在分層框架中,已經(jīng)明確給出了各層的職責(zé),對于業(yè)務(wù)簡單的小型系統(tǒng),個人認為類的劃分按照以下步驟即可。

  • 前端頁面:職責(zé)主要處理用戶操作邏輯(包括有效性驗證、樣式),將公用的控件、組件進行獨立封裝,封裝的組件不進行后臺數(shù)據(jù)的訪問。功能模塊(獨立頁面)為單位完成各種組件控件的組裝和數(shù)據(jù)的提取。
  • 后端controller層:職責(zé)為完成對前端展示數(shù)據(jù)的格式轉(zhuǎn)換及提交操作信息的接收;小型信息系統(tǒng)一般以前端獨立頁面(功能模塊)為單位封裝controller,一個controller完成相應(yīng)功能模塊所有的信息功能。
  • 后端services層:職責(zé)完成業(yè)務(wù)邏輯及數(shù)據(jù)的加工;與controller層封裝類對應(yīng),對外接口滿足controller的需求,還需對數(shù)據(jù)的加工處理、業(yè)務(wù)規(guī)則進行抽象,進一步進行劃分相關(guān)業(yè)務(wù)類,后端services類似設(shè)計模式中門面模式,將controller和各種業(yè)務(wù)邏輯及數(shù)據(jù)庫邏輯進行隔離,僅提供和controller之間的交互。一般小型簡單系統(tǒng)僅使用后端services類即可完成。
  • dao層:職責(zé)完成數(shù)據(jù)持久化問題;dao層類分兩種,一種為需要進行增刪改查操作的表創(chuàng)建一個dao層類(接口);另一種是完成關(guān)聯(lián)查詢、存儲過程的按照功能劃分獨立的類(接口)
  • 實體層:職責(zé)則是數(shù)據(jù)的載體功能;需要完成增刪改查表創(chuàng)建獨立實體;對于關(guān)聯(lián)查詢創(chuàng)建獨立的數(shù)據(jù)實體。

拓展

單一職責(zé)原則是寫代碼最容易違反的一個原則,違反此原則代碼立即轉(zhuǎn)換成all in one;
雖然很多框架明確規(guī)定各層職責(zé),但程序員經(jīng)常將代碼寫到一處;
雖然使用面向?qū)ο笳Z言,還是面向過程調(diào)用

依賴倒置原則概念

依賴倒置原則要求依賴抽象,不要依賴具體;抽象的穩(wěn)定性決定了系統(tǒng)的穩(wěn)定性,因為抽象是不變的,依賴于抽象是面向?qū)ο笤O(shè)計的精髓。

示例

參考:要依賴于抽象,不要依賴于具體

拓展

控制翻轉(zhuǎn)(IOC):里氏替換原則解決了子類可以替換父類的問題,但是子類在什么時候創(chuàng)建,由誰創(chuàng)建就是依賴倒置原則要解決的問題。對象使用前,必須創(chuàng)建具體的對象,如A類中調(diào)用了B類的方法,則在A類里面需要創(chuàng)建B的實例對象,則A依賴于B?,F(xiàn)在讓A依賴于B的父類(接口),A不創(chuàng)建B實例,而是把創(chuàng)建實例的權(quán)限交給容器,由容器創(chuàng)建實例給A,容器給那個實例,A用那個實例,A控制權(quán)丟失。所謂的容器就是一段代碼,如:工廠類、Spring容器等。

以上就是java面向?qū)ο笤O(shè)計原則之單一職責(zé)與依賴倒置原則詳解的詳細內(nèi)容,更多關(guān)于java面向?qū)ο笤O(shè)原則的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot使用Maven插件進行項目打包的方法

    SpringBoot使用Maven插件進行項目打包的方法

    這篇文章主要介紹了SpringBoot使用Maven插件進行項目打包的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • JavaWeb亂碼問題的終極解決方案(推薦)

    JavaWeb亂碼問題的終極解決方案(推薦)

    這篇文章主要給大家介紹了關(guān)于JavaWeb亂碼問題的終極解決方案,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用JavaWeb具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳細總結(jié)Java組合模式

    詳細總結(jié)Java組合模式

    今天帶大家了解Java設(shè)計模式中的組合模式,下文中對組合模式介紹的非常詳細,還有相關(guān)代碼,對正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Spring Boot項目利用Redis實現(xiàn)session管理實例

    Spring Boot項目利用Redis實現(xiàn)session管理實例

    本篇文章主要介紹了Spring Boot項目利用Redis實現(xiàn)session管理實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Servlet連接數(shù)據(jù)庫實現(xiàn)用戶登錄的實現(xiàn)示例

    Servlet連接數(shù)據(jù)庫實現(xiàn)用戶登錄的實現(xiàn)示例

    本文主要介紹了Servlet連接數(shù)據(jù)庫實現(xiàn)用戶登錄的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Java語言一元運算符實例解析

    Java語言一元運算符實例解析

    這篇文章主要介紹了Java語言中的一元運算符實例解析,需要的朋友可以參考下。
    2017-09-09
  • mybatis-plugin插件執(zhí)行原理解析

    mybatis-plugin插件執(zhí)行原理解析

    這篇文章主要介紹了mybatis-plugin插件執(zhí)行原理,我們就需要來研究下Executor,ParameterHandler,ResultSetHandler,StatementHandler這4個對象的具體跟sql相關(guān)的方法,然后再進行修改,就可以直接起到aop的作用,需要的朋友可以參考下
    2022-10-10
  • Java?Integer如何獲取第一位和最后一位,并截取

    Java?Integer如何獲取第一位和最后一位,并截取

    這篇文章主要介紹了Java?Integer如何獲取第一位和最后一位并截取,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java執(zhí)行SQL語句實現(xiàn)查詢的通用方法詳解

    java執(zhí)行SQL語句實現(xiàn)查詢的通用方法詳解

    這篇文章主要介紹了java執(zhí)行SQL語句實現(xiàn)查詢的通用方法詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • maven如何動態(tài)統(tǒng)一修改版本號的方法步驟

    maven如何動態(tài)統(tǒng)一修改版本號的方法步驟

    這篇文章主要介紹了maven如何動態(tài)統(tǒng)一修改版本號的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論