詳解業務系統高內聚,低耦合,值得收藏(簡述高內聚低耦合的含義)

概述

今天跟領導交流時談了一下業務解耦的一些內容,而其中就談到了為什么需要解耦?回答這個問題,我們必須得知道什么是解耦。相信大多數朋友都在軟件工程中聽過這樣一句話 —— “高內聚,低耦合”。那么什么是 “高內聚”,什么是 “低耦合”呢?下面區分介紹一下。


01

什么是內聚

內聚,從字面上來看有聚精會神、聚在一起的意思,那么 高內聚也就是盡可能的使一個模塊或一個類再或者是一個方法只專注做好一件事。

在設計軟件的時候一定要采取【多聚合、少繼承】的基本原則,因為使用 “聚合” 的這種方式能夠使業務邏輯更加清晰,更有利于我們后期的擴展和維護。

詳解業務系統高內聚,低耦合,值得收藏(簡述高內聚低耦合的含義)

例如訂單模塊,一般情況下,下單模塊都會有如下的信息,訂單的信息,產品的信息及誰下的單(買家信息)。這是基本的,那么設計的時候就要把相關的功能內聚到一起。當然這是從大功能(下單管理)上來說,當然這些模塊還可以再細化分成產品、訂單、會員等子模塊。


02

耦合

耦合,從字面上來看有藕斷絲連的意思,“耦” 這個字在中國漢語里指的是兩個人在一起耕地,他倆各干各的互不影響,這也是“耦合”的由來。

那么 低耦合也就是盡可能的使每個模塊之間或者每個類之間再或者是每個方法之間的關聯關系減少,這樣可以使各自盡可能的獨立,一個地方出錯,不會影響全部,更能提高代碼的重用性。

詳解業務系統高內聚,低耦合,值得收藏(簡述高內聚低耦合的含義)

所以在設計軟件的時候也一定要注意各模塊之間一定盡可能的減少聯系,防止一個模塊出現的問題影響到其他模塊。

詳解業務系統高內聚,低耦合,值得收藏(簡述高內聚低耦合的含義)


03

使用高內聚,低耦合的好處

1、生活中的 “高內聚,低耦合”

軍隊的存在是為了保家衛國,我們國家的軍隊分為海軍、陸軍、空軍等部隊,他們各自的職責是不一樣的。海軍負責海上作戰,陸軍負責陸地作戰,空軍負責空中作戰,他們之間的聯系很少。

我們可以想想為什么要這樣安排呢?如果我們國家的軍隊不分的那么細,每支部隊都有在海上、陸地、空中作戰的士兵,如果我們和日本在海上大戰,我們還需要從各個部隊中抽取能夠在海上作戰的士兵,再組成一支海上抗日軍這樣的部隊,抽取出來的士兵的戰斗力各有不一,還需要一個適應的過程,我們想想這支一盤散沙的部隊能取得勝利嘛?

打仗在于兵貴神速,這樣的一支部隊還是一盤散沙呢,怎么能做到兵貴神速呢?那么我們可以早早的就把他們分為海軍、陸軍、空軍,海軍就負責在海上作戰,陸軍就負責在陸地作戰,空軍就負責在空中作戰,我們如果和日本進行海上大戰,我們直接派海軍過去不就可以了嘛?

根據我們剛才的分析,證明了軍隊分為海軍、陸軍、空軍的好處,那么我們再想想,他們之間的聯系為什么會很少呢?咱們還是假設一下,如果每個部隊總是依賴其他幾個部隊,不會獨立戰斗,那么如果某一天海軍被派出去執行任務,美國這個時候空軍來襲,我們的空軍難道要等海軍回來再戰斗嘛?如果那樣的話為時晚矣。所以他們之間應該獨立作戰,互相依賴的情況應該要減少。

這就是生活中的 “高內聚,低耦合” 的例子。類似這樣的例子還有很多,只要我們留心觀察就能發現。

2、Java中的 “高內聚,低耦合”

耦合放到Java里面就是兩個類之間的聯系的緊密程度,看下面這段代碼:

public class A { public void say() { System.out.println(\”I am A\”); }}public class B { public void put(A a) { a.say(); }}

從上面這個例子中我們可以看出來,A類 和 B類 之間存在一種很強的一個聯系,我們把這種聯系稱為強耦合關系,B類的 put方法 參數必須是 A類類型,不可以是 非A類類型。

當然了,既然有強耦合關系當然也存在所謂的弱耦合關系,弱耦合也就是我們俗說的低耦合。那么請看下面這段代碼:

public interface IBase { void say();}public class A implements IBase { @Override public void say() { System.out.println(\”I am A\”); }}public class B implements IBase { @Override public void say() { System.out.println(\”I am B\”); }}public class C { public void put(IBase base) { base.say(); }}

上面這段代碼中 C類 與 A類、B類之間就存在一種弱耦合關系,C類 的 put方法 的參數可以是 A類類型 也可以是 B類類型,不像強耦合關系中必須是 A類類型 其他類型皆不可的情形。

我們實現低耦合就是對兩類之間進行解耦,解除類之間的直接關系,將直接關系轉換成間接關系,和上面代碼一樣,這種思想利用了多態的思想,不過一般情況都是使用接口的方式來實現解耦的。通常情況下我們在系統分離時只是以接口的方式提供服務,供其他的模塊進行使用。在模塊內部有大量的信息是不要向外部暴露的,所以模塊在設計時訪問域的定義就要劃分好,防止因為訪問域的定義而對模塊的信息造成破壞。


“高內聚,低耦合”,用一句話概括就是寫的代碼盡可能專一的完成一個任務,且各段代碼盡量模塊化互相獨立。可能大家覺得這只是開發要懂的內容,但如果運維想深入的話這個也是繞不過去的,理解了才能更好的去設計一個系統,保證系統高效穩定。后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~

詳解業務系統高內聚,低耦合,值得收藏(簡述高內聚低耦合的含義)

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2024年5月16日 下午3:09
下一篇 2024年5月16日 下午3:20

相關推薦

  • 敏敏科研項目

    敏敏科研項目:探索人類基因編輯技術的未來 近年來,基因編輯技術一直在科學家們的不斷努力下取得了巨大的進展。這種技術可以用來修改人類基因組,使人類變得更加健康,強壯和長壽。但是,這種…

    科研百科 2025年2月10日
    7
  • 軟件項目管理項目經理

    軟件項目管理項目經理:如何確保項目成功交付 軟件項目管理在現代軟件開發中扮演著至關重要的角色。作為項目經理,我們需要確保項目按時、按質量、按預算完成,并滿足客戶需求。本文將介紹一些…

    科研百科 2024年8月22日
    5
  • 華為研發項目管理方法RDPM讀后感

    華為研發項目管理方法RDPM讀后感華為研發項目管理方法RDPM讀后感(華為發明的功效)華為 No.15 公司發布的《公司內部管理辦法》的第一手游說讓《華為公司內部管理辦法》的員工驚…

    科研百科 2024年11月20日
    5
  • 土木工程施工項目管理

    土木工程施工項目管理 土木工程施工項目管理是指在土木工程建設中,通過合理的規劃和組織,將建筑、道路、橋梁、隧道、水利工程等各個工程 components completed 并符合…

    科研百科 2024年9月21日
    3
  • smartlaiAPP下載

    下載SmartlaiAPP,體驗智能生活 近年來,隨著人工智能技術的不斷發展,智能生活已經成為人們生活中不可或缺的一部分。而SmartlaiAPP,則是其中最具代表性的一款智能應用…

    科研百科 2024年11月6日
    4
  • 本科直博科研項目

    本科直博科研項目 近年來,隨著高等教育的快速發展,越來越多的學生選擇直接攻讀博士學位。對于那些想要進一步深入研究自己感興趣的領域的人來說,直博項目是一個不錯的選擇。本文將探討本科直…

    科研百科 2025年2月26日
    7
  • 速戳!市住房城鄉建設管理委2023年度科研項目計劃發布→

    為進一步提升住建行業科技創新能力,持續激發創新活力,市住房城鄉建設管理委結合本市住建領域科技發展實際,重點圍繞城市更新、數字化轉型、綠色低碳、安全韌性等方面,形成《上海市住房和城鄉…

    科研百科 2023年10月8日
    202
  • 項目管理工具包

    項目管理工具包 項目管理是組織管理中非常重要的一環。通過使用項目管理工具包,可以更高效地管理項目,確保項目能夠按時完成,并在預算范圍內完成。 項目管理工具包通常包括一些用于項目計劃…

    科研百科 2024年7月28日
    1
  • 工程項目管理下載

    工程項目管理下載 工程項目管理下載是一種能夠幫助人們高效地管理工程項目的軟件。無論是建筑項目, 工程維護還是其他類型的項目,下載工程項目管理軟件都能夠提高項目的效率和質量。 工程項…

    科研百科 2024年9月22日
    2
  • 企業合同管理制度創新初探(企業合同管理制度創新初探論文)

    文章來源網絡 作者:林清達 摘要:合同是企業與外部進行物流、資金流、信息流交換的基本形式。當前我國市場規則和秩序還不很規范,合同極易被不法分子利用,進行各種違法犯罪活動,企業就可能…

    2022年8月8日
    552
高中生的放荡日记h| 狠狠亚洲婷婷综合色香五月排名 | 国产亚洲精品欧洲在线观看| 香蕉视频在线观看免费国产婷婷| 国产成人综合亚洲绿色| 韩国一级毛片在线观看| 国产又色又爽又刺激在线观看| 舌头伸进去里面吃小豆豆| 国产一卡二卡3卡4卡四卡在线 | 女人18毛片水真多免费看| 一区二区三区视频在线| 夫妇交换性三中文字幕| juy639黑人教练君岛美绪| 国内露脸中年夫妇交换视频| 95免费观看体验区视频| 国产精品videossex另类| 青草青草久热精品视频在线观看| 国产人妖系列在线精品| 精品午夜福利1000在线观看| 全彩本子里番调教仆人| 欧美高清在线精品一区二区不卡 | 天堂а√在线地址中文在线| 99精品视频在线在线视频观看| 国产精品欧美成人| 麻豆md国产在线观看| 国产人妖ts丝丝magnet| 精品人妻潮喷久久久又裸又黄| 免费的一级毛片| 欧美成年黄网站色视频| 亚洲人成网站999久久久综合| 日本韩国三级在线| 亚洲国产一区二区a毛片| 欧美性猛交xxxx乱大交极品| 亚洲制服丝袜中文字幕| 日本不卡视频免费| 中文字幕加勒比| 在线综合 亚洲 欧美中文字幕| yellow高清在线观看完整视频在线| 国产萌白酱在线一区二区| 黄色一级毛片看一级毛片| 国产亚洲美女精品久久久|