一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - java面向?qū)ο笤O(shè)計(jì)原則之單一職責(zé)與依賴倒置原則詳解

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

2022-02-19 15:02guoyp2126 Java教程

這篇文章主要介紹了java面向?qū)ο笤O(shè)計(jì)原則之單一職責(zé)與依賴倒置原則的分析詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步早日升職加薪

單一職責(zé)概念

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

實(shí)現(xiàn)

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

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

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

拓展

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

依賴倒置原則概念

依賴倒置原則要求依賴抽象,不要依賴具體;抽象的穩(wěn)定性決定了系統(tǒng)的穩(wěn)定性,因?yàn)槌橄笫遣蛔兊模蕾囉诔橄笫敲嫦驅(qū)ο笤O(shè)計(jì)的精髓。

示例

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

拓展

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

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

原文鏈接:https://blog.csdn.net/guoyp2126/article/details/113941321

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青草久久网 | a一级毛片录像带 录像片 | 翁熄性放纵交换300章 | 牛人国产偷窥女洗浴在线观看 | 日韩福利网站 | 国产成人亚洲精品91专区高清 | 边摸边吃奶边做爽gif动态图 | 国产亚洲欧美日韩综合综合二区 | 好男人资源免费播放在线观看 | 欧美一级久久久久久久大片 | 911香蕉视频 | 青草青草视频2免费观看 | 国产青草视频在线观看免费影院 | 麻豆视频免费在线观看 | 北条麻妃黑人正在播放 | 国产好痛疼轻点好爽的视频 | 波多野结衣伦理在线观看 | 黑帮少爷爱上我第8集最新 荷兰精品女人性hd 和日本免费不卡在线v | 欧美日一级片 | 小寡妇水真多好紧 | 欧美一级二级片 | 91九色jiuse006| 国产色视频一区二区三区 | 欧美3p大片在线观看完整版 | 免费波多野结衣庭教师 | 精选国产AV精选一区二区三区 | 日本不卡一区二区三区在线观看 | 免费理伦片在线观看全网站 | 精品国产国产综合精品 | 图片亚洲va欧美va国产综合 | 校园高h | 红色播放器 | 亚洲国产中文字幕在线视频综合 | 性生大片免费看 | 成年人视频在线免费观看 | 毛片免费视频观看 | 国产资源免费观看 | 色呦呦在线免费观看 | 范冰冰上面好大下面好紧 | 国产精品亚洲综合第一区 | 日韩欧美一区二区不卡 |