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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取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

    文章

    2717

    瀏覽量

    47546
  • 耦合
    +關注

    關注

    13

    文章

    583

    瀏覽量

    100901
  • 接口
    +關注

    關注

    33

    文章

    8626

    瀏覽量

    151351
  • API
    API
    +關注

    關注

    2

    文章

    1503

    瀏覽量

    62144
  • 內聚
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1340

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

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

收藏 人收藏

    評論

    相關推薦

    cpost的使用及原理解析

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

    使用C語言實現耦合

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

    如何實現代碼的耦合

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

    淺析模塊化編程思路

    好久沒更新播客了,最新想寫些自己的編程方面想法。也就是些自己的想法,不一定準確,在這希望能和大家分享下。相信大家在大學的時候都學過程序遵循的標準是“
    發表于 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 ?1068次閱讀

    C語言中的耦合講解

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

    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 ?1634次閱讀
    手把手帶小白做MODBUS通訊實驗

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

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

    編程如何做到耦合呢?

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

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

    中,通常會使用枚舉來定義業務上的一組常量,那除了簡單地定義常量之外,我們如何利用枚舉來實現耦合的設計呢?下面介紹下枚舉和策略模式、
    的頭像 發表于 11-21 14:06 ?235次閱讀
    主站蜘蛛池模板: 久久受www免费人成_看片中文| 日本久久高清视频| 亚洲高清中文字幕免费| 国语大学生自产拍在线观看| 亚洲人成电影网站在线观看| 久见久热 这里只有精品| 最新国产三级在线不卡视频| 人妻少妇偷人精品无码洋洋AV| 国产成人刺激视频在线观看| 亚洲乱码高清午夜理论电影 | 影音先锋2017av天堂| 嗯好舒服嗯好大好猛好爽| 动漫美女和男人下载| 亚洲免费无码中文在线亚洲在| 伦理片飘花手机在线| 国产成人a一在线观看| 在线看免费毛片| 日韩精品一区二区三区色欲AV | 国产精品无码人妻在线| 影音先锋色av男人资源网| 青青伊人精品| 精品亚洲午夜久久久久| yellow日本动漫高清| 亚洲区 bt下载| 日本人的xxxxxxxxx69| 久久久无码精品一区二区三区| 囯产少妇BBBBBB高潮喷水一| 在教室伦流澡到高潮HNP视频| 色戒在线完整观看在线播放版| 久久九九少妇免费看A片| 动漫美女喷水| 自慰弄湿白丝袜| 亚洲精品国偷拍自产在线| 日本 一二三 不卡 免费| 久久精品国产亚洲AV麻豆欧美玲 | 男女肉大捧进出全过程免费| 国产免费怕怕免费视频观看| TUBE69CHINESE学生| 在线播放av欧美无码碰| 亚瑟天堂久久一区二区影院| 欧美性狂猛bbbbbbxxxx|