色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

圖解高內聚與低耦合

馬哥Linux運維 ? 來源:博客園-大道方圓 ? 2023-03-08 17:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

模塊

模塊就是從邏輯上將系統分解為更細微的部分, 分而治之, 復雜問題拆解為若干簡單問題, 逐個解決.

耦合主要描述模塊之間的關系, 內聚主要描述模塊內部. 模塊的粒度可大可小, 可以是函數, 類, 功能塊等等.

耦合

模塊之間存在依賴, 導致改動可能會互相影響, 關系越緊密, 耦合越強, 模塊獨立性越差.

比如模塊A直接操作了模塊B中數據, 則視為強耦合, 若A只是通過數據與模塊B交互, 則視為弱耦合.

獨立的模塊便于擴展, 維護, 寫單元測試, 如果模塊之間重重依賴, 會極大降低開發效率.

1a42c608-a2f7-11ed-bfe3-dac502259ad0.gif

內聚

模塊內部的元素, 關聯性越強, 則內聚越高, 模塊單一性更強. 一個模塊應當盡可能獨立完成某個功能,

如果有各種場景需要被引入到當前模塊, 代碼質量將變得非常脆弱, 這種情況建議拆分為多個模塊.

低內聚的模塊代碼, 不管是維護, 擴展還是重構都相當麻煩, 難以下手.

1a580716-a2f7-11ed-bfe3-dac502259ad0.gif

接口設計原則

好的接口應當滿足設計模式六大原則, 很多設計模式, 框架都是基于高內聚低耦合這個出發點的.

單一職責原則: 一個類只負責一個功能領域中的相應職責.

開閉原則: 一個軟件實體應當對擴展開放,對修改關閉.

里氏代換原則: 所有引用基類(父類)的地方必須能透明地使用其子類的對象.

依賴倒轉原則: 抽象不應該依賴于細節, 細節應當依賴于抽象. 換言之, 要針對接口編程, 而不是針對實現編程.

接口隔離原則: 使用多個專門的接口, 而不使用單一的總接口, 即客戶端不應該依賴那些它不需要的接口.

迪米特法則: 一個軟件實體應當盡可能少地與其他實體發生相互作用, 例如外觀模式, 對外暴露統一接口.

舉幾個栗子

外觀模式

為系統中多個子系統提供一致的對外調用, 對客戶端隱藏子系統細節, 降低其與子系統的耦合.

1a697604-a2f7-11ed-bfe3-dac502259ad0.png

橋接模式

JDBC中的把面向廠商的接口(Driver)和面向使用者的API(DriverManager)做了拆分隔離.

//開發者只需要關注JDBCAPI,無需關注不同數據庫Driver接口實現
Class.forName("com.mysql.jdbc.Driver");
Connectionconn=DriverManager.getConnection(url,username,password);

1adf5914-a2f7-11ed-bfe3-dac502259ad0.png

適配器模式

引入第三方庫(hibernate, log4j), 不應該直接在代碼中繼承或者使用其實體類.

需要抽出上層統一接口, 然后增加實現類, 對外暴露接口.

//代碼與log4j強耦合,不推薦
org.apache.log4j.Logger.getRootLogger().info("info");
//底層可以隨意更換log框架
FRLoggerFactory.getLogger().info("info");

1b097ec4-a2f7-11ed-bfe3-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2789

    瀏覽量

    50510
  • 耦合
    +關注

    關注

    13

    文章

    596

    瀏覽量

    101695
  • 接口
    +關注

    關注

    33

    文章

    9015

    瀏覽量

    153817
  • API
    API
    +關注

    關注

    2

    文章

    1637

    瀏覽量

    64112
  • 內聚
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1368

原文標題:圖解高內聚與低耦合

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    cpost的使用及原理解析

    嵌入式編程的需求千變萬化,要做到系統穩定,又要代碼可復用,就要做到耦合
    發表于 08-08 11:01 ?1449次閱讀

    使用C語言實現耦合

    編程時,我們講究的是耦合,在協同開發、代碼移植、維護等環節都起到很重要的作用。
    發表于 09-21 11:33 ?1275次閱讀

    如何實現代碼的耦合

    大家在談到面向對象編程的時候基本都是討論軟件的“耦合”的特點,這6個字也是算是成為了大部分評判代碼質量的一個標準,所以很多小伙伴一
    發表于 10-13 08:57 ?1371次閱讀

    淺析模塊化編程思路

    好久沒更新播客了,最新想寫些自己的編程方面想法。也就是些自己的想法,不一定準確,在這希望能和大家分享下。相信大家在大學的時候都學過程序遵循的標準是“
    發表于 12-20 06:52

    如何去實現模塊設計中的耦合

    耦合分別是什么意思?有何作用?如何去實現模塊設計中的
    發表于 02-25 07:05

    怎么把硬件操作和APP軟件耦合起來?

    你們寫嵌入式都是怎么把硬件操作和APP軟件耦合起來的,怎樣達到耦合的效果
    發表于 11-06 07:57

    基于最優投影的半監督類算法

    (semi-su-pervised spectral clustering based on the optimal projection,SSOP)。該算法從高耦合
    發表于 01-14 11:54 ?0次下載

    寬帶頻率范圍的定向和雙向耦合

    MCLI在無源元件方面的專業知識還擴展到寬帶頻率范圍的定向和雙向耦合器,具有插入損耗、指向性和駐波比的特點。MCLI所有定向
    發表于 11-10 10:24 ?1259次閱讀

    C語言中的耦合講解

    編程時,我們講究的是耦合,在協同開發、代碼移植、維護等環節都起到很重要的作用。 一、原理篇而
    的頭像 發表于 08-16 14:06 ?2539次閱讀

    C語言--“耦合”編程思想

    1、定義耦合,是軟件工程中的概念,是判斷設計好壞的標準,主要是面向對象的設計,主要是看類的內聚性是否
    發表于 01-13 13:43 ?3次下載
    C語言--“<b class='flag-5'>高</b><b class='flag-5'>內</b><b class='flag-5'>聚</b>,<b class='flag-5'>低</b><b class='flag-5'>耦合</b>”編程思想

    很強大!耦合的MCU實用軟件框架

    一個模塊內部各個元素之間的聯系的緊密程度,如果各個元素(語句、程序段)之間的聯系程度越高,則內聚性越高,也就是
    發表于 02-08 15:56 ?3次下載
    很強大!<b class='flag-5'>低</b><b class='flag-5'>耦合</b><b class='flag-5'>高</b><b class='flag-5'>內</b><b class='flag-5'>聚</b>的MCU實用軟件框架

    手把手帶小白做MODBUS通訊實驗

    我們做程序庫封裝的基本要義是耦合, 而評價低耦合的終極體現則是使用實現過程的優雅程度。
    的頭像 發表于 08-06 17:05 ?1961次閱讀
    手把手帶小白做MODBUS通訊實驗

    電路耦合效應分析 耦合好還是

    電路耦合效應分析 耦合好還是好 電路耦合效應是指兩個或更多電路之間存在的相互影響的現象。在電路中,一個信號的變化可能會引起另一個信號的
    的頭像 發表于 09-22 12:47 ?5621次閱讀

    編程如何做到耦合呢?

    耦合,是指模塊之間盡可能的使其獨立存在,模塊之間不產生聯系不可能,但模塊與模塊之間的接口應該盡量少而簡單。
    的頭像 發表于 12-06 09:20 ?1497次閱讀

    Java 枚舉與策略模式、函數式接口的結合:實現耦合的設計

    中,通常會使用枚舉來定義業務上的一組常量,那除了簡單地定義常量之外,我們如何利用枚舉來實現耦合的設計呢?下面介紹下枚舉和策略模式、
    的頭像 發表于 11-21 14:06 ?654次閱讀
    主站蜘蛛池模板: 日本电影小姐 | 羞羞漫画视频 | 国产高清精品国语特黄A片 国产高清国内精品福利色噜噜 | 午夜国产精品视频在线 | 我的漂亮朋友在线观看全集免费 | 浪货嗯啊趴下NP粗口黄暴 | 成人免费视频无遮挡在线看 | 8X拨牐拨牐X8免费视频8 | 亚洲精品高清中文字幕完整版 | 麻生希第一部快播 | 亚洲国产精品特色大片观看 | 青苹果乐园在线观看电视剧 | 夜夜狂射影院欧美极品 | 久久噜国产精品拍拍拍拍 | 亚洲中文无码AV在线观看 | 强伦姧久久久久久久久久 | 呜呜别塞了啊抽插 | 麻豆传煤网站网址入口在线下载 | 精品免费久久久久久影院 | 国产精品JK白丝AV网站 | 国产热久久精 | 一本色道久久综合一区 | 我的好妈妈8高清在线观看WWW | 三级黄色在线 | 亚洲精品喷白浆在线观看 | 手机在线观看mv网址 | 97视频免费上传播放 | 精品日韩视频 | 精品国产乱码久久久久久夜深人妻 | 无码人妻视频又大又粗欧美 | 無码一区中文字幕少妇熟女H | 秘密教学93话恩爱久等了免费 | 亚洲成人免费 | 国产精品无码无卡毛片不卡视 | 国模啪啪久久久久久久 | 亚洲成人免费看 | 成人中文在线 | 最近免费中文字幕MV在线视频3 | 51xx午夜影视福利 | 狠狠干女人| 欧美日韩中文在线字幕视频 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品