軟件設計原則:內聚、耦合有哪幾種類型?內聚度、耦合度如何比較?

文章目錄

  • 前言
  • 一、何為內聚?
    • 1.1、7 種內聚類型及其描述
  • 二、何為耦合?
    • 2.1、7 種耦合類型及其描述
  • 總結


前言

高內聚、低耦合是我們在軟件設計過程中必須遵循的一個重要原則,在整個軟件工程中占有很大的比重。而對于內聚和耦合你還是僅僅局限于“高內聚,低耦合”的模糊概念嗎?那你是如何判斷何為高低呢?本篇文章將帶你分別深度剖析和總結內聚與耦合的 7 種類型和描述,為在以后的項目開發與考試中更好地判斷類型助你一臂之力!

在這里插入圖片描述


一、何為內聚?

內聚是指模塊內部各元素之間聯系的緊密程度,也就是代碼功能的集中程度。

1.1、7 種內聚類型及其描述

模塊的內聚類型通常可以分為 7 種,我們根據內聚度從高到低排序,如下表所示:

內聚類型描述
功能內聚完成一個單一功能,各個部分協同工作,缺一不可
順序內聚處理元素相關,而且必須順序執行
通信內聚所有處理元素集中在一個數據結構的區域上
過程內聚處理元素相關,而且必須按特定的次序執行
瞬時內聚所包含的任務必須在同一時間間隔內執行(如:初始化模塊)
邏輯內聚完成一組邏輯上相關的任務
偶然內聚完成一組沒有關系或松散關系的任務

二、何為耦合?

耦合是指模塊之間相互聯系的緊密程度。

2.1、7 種耦合類型及其描述

模塊的耦合性類型通常分為 7 種,我們根據耦合度從低到高排序,如下表所示:

耦合類型描述
非直接耦合沒有直接聯系,互相不依賴對方
數據耦合借助參數表傳遞簡單數據
標記耦合一個數據結構的一部分借助于模塊接口被傳遞
控制耦合模塊間傳遞的信息中包含用于控制模塊內部邏輯的信息
外部耦合與軟件以外的環境有關
公共耦合多個模塊引用同一個全局數據區
內容耦合一個模塊訪問另一個模塊的內部數據
一個模塊不通過正常入口轉到另一模塊的內部
兩個模塊有一部分程序代碼重疊
一個模塊有多個入口

總結

本文給大家介紹了軟件設計原則中兩個核心概念——內聚、耦合,并對兩個概念進行了闡述。同時分別補充了內聚與耦合各自的 7 種類型,便于我們判別其程度,在開發中更好地設計性能優良的軟件系統,盡量的減少由于內聚、耦合度差帶來后期維護和升級的困擾。

在這里插入圖片描述


我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530730.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530730.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530730.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫管理工具:如何使用 Navicat Premium 轉儲(導出)和運行(導入)*.sql 文件?

文章目錄前言一、轉儲(導出)數據庫 SQL 文件1.1、選擇“轉儲 SQL 文件”1.2、選擇導出文件存放位置1.3、查看轉儲 SQL 文件界面1.4、查看 SQL 輸出文件1.5、查看輸出文件詳情信息二、運行(導入)數據庫 SQL 文件2.1、新建數據庫2.2…

JSP 編譯原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 編譯生成的 Servlet 源文件?

文章目錄前言一、JSP 文件編譯流程原理二、創建并運行待測試 JSP 頁面三、查找 JSP 編譯文件輸出位置3.1、打開動態項目運行配置3.2、查看 JSP 編譯文件輸出位置3.3、查看 JSP 編譯輸出文件四、JSP 編譯輸出 Servlet 的論證五、訪問 JSP 文件的流程總結前言 相信大家都了解&…

MVC 模式/Servlet/JSP 編譯原理剖析:Servlet 組件到底屬于 MVC 模式的哪一層?

文章目錄前言一、回憶什么是 MVC 模式?1.1、Model、View、Controller 組件介紹1.2、明確 View 與 Controller 組件區別二、什么是 Servlet?2.1、Servlet 的組件定義2.2、Servlet 組件處于 Controller 層?三、老師說 Servlet 是 View 層的&…

操作系統原理:進程 PV 操作如何計算?全網最全三種前驅圖計算類型總結

文章目錄前言一、PV 操作定義1.1、P 操作定義1.2、V 操作定義二、串聯進程(單線前驅圖)2.1、什么是單線前驅圖?2.2、如何計算單線前驅圖的 PV?2.2.1、計算前驅節點 PV2.2.2、計算中間節點 PV2.2.3、計算尾節點 PV三、并聯進程&…

Spring 容器:三種方式解決 Resource leak: ‘applicationContext‘ is never closed 問題

文章目錄前言一、Spring 容器警告產生的場景二、Spring 容器未關閉后果分析2.1、肉眼可見的警告2.2、導致的內存泄漏2.2.1、什么是內存泄漏?2.2.2、如何判斷內存泄漏?2.2.3、Java 中的 GC(垃圾回收)2.2.4、Java 中會導致內存泄漏的…

SSM 整合 4:Spring IoC 容器基于的兩個重要接口 BeanFactory 和 ApplicationContext

文章目錄 前言一、BeanFactory 接口1.1、加載 Spring 配置文件創建 BeanFactory 接口實例1.2、開發中的運用以及使用說明二、ApplicationContext 接口2.1、ClassPathXmlApplicationContext 創建接口實例2.2、FileSystemXmlApplicationContext 創建接口實例2.3、通過 Web 服務器…

SRA 案例:關于華為開發者聯盟基礎服務文檔內容的改進建議(華為開發者聯盟文檔深度體驗官)

文章目錄前言一、文檔中心的外鏈跳轉問題1.1、問題描述1.2、造成的問題1.3、改進建議二、圖片失真和無法放大查看問題2.1、問題描述2.2、造成的問題2.3、改進建議三、個別 SDK 詞匯缺少必要的說明3.1、問題描述3.2、造成的問題3.3、改進建議四、郵箱信息的優化4.1、問題描述4.2…

騰訊位置服務:有何優勢?如何使用平臺創建應用和服務調用的 Key?

文章目錄前言一、騰訊位置服務的優勢1.1、提供豐富的地圖產品1.2、提供行業解決方案1.3、提供其他生態維度的支持1.4、海量的數據基礎1.5、豐富的開發文檔二、初識騰訊位置服務2.1、用戶的注冊與登錄(附專屬邀請碼)2.2、開發者信息的完善三、創建服務平臺…

畢業生當頭一棒?憶本科四年,高校畢業生與就業單位基本要求差多少?工作還是考研?

文章目錄前言一、大學本科前兩年的生活1.1、庸庸碌碌、中規中矩1.2、收獲了愛情二、大三的改變2.1、學會自律2.2、學會自我總結2.3、眼光要具有前瞻性三、畢業答辯3.1、個人設計答辯3.2、團隊設計答辯四、南京之行4.1、銘記歷史,感恩先輩4.2、加強自我認知與提升五、…

Gitee 答疑:為什么從 Gitee 平臺 Pull 代碼到 STS/Eclipse 后文件亂碼?逐步排查

文章目錄前言一、產生亂碼場景1.1、錯誤描述1.2、解決思路二、解決方式2.1、檢查 Git 平臺上的源碼2.2、Git 的運行原理2.3、修改 IDE 的文本編碼格式2.4、重新打開目的文件問題解決2.5、仍存在問題看這里(重新拉區合并)總結前言 我們從 Gitee 平臺 Pull…

flash 異常修復:QQ 的 flash 圖標顯示異常?QQ 秀、表情加載異常?一招解決

文章目錄前言一、產生錯誤場景1.1、flash 圖標顯示異常1.2、解決思路二、安裝合適版本的 Flash Player2.1、選擇合適版本的 Flash Player2.2、安裝 Flash Player三、重啟 QQ 客戶端四、flash 動畫加載異常4.1、動畫加載異常原因分析4.2、下載安裝 flash 修復工具4.3、使用 Flas…

電腦廣告多?Windows 自帶惡意軟件刪除工具還不會使用?有必要安裝殺毒軟件嗎?

文章目錄前言一、啟動惡意軟件刪除工具二、掃描類型的選擇三、啟動軟件掃描四、惡意軟件刪除工具的說明五、對于惡意軟件處理的建議總結前言 可能有些小伙伴發現,哎?為什么我的電腦彈窗廣告這么多?難不成小視頻看多了?電腦中毒了&…

《軟件項目管理(第二版)》第 8 章——項目團隊與干系人 重點部分總結

文章目錄 前言一、簡答題二、論述題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 8 章——項目…

《軟件項目管理(第二版)》第 7 章——項目風險管理 重點部分總結

文章目錄 前言一、單選題二、填空題三、簡答題四、論述題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二…

《軟件項目管理(第二版)》第 6 章——項目質量管理 重點部分總結

文章目錄 前言一、單選題二、判斷題三、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 6…

《軟件項目管理(第二版)》第 5 章——項目進度和成本管理 重點部分總結

文章目錄 前言一、填空題二、簡答題三、論述題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 5…

《軟件項目管理(第二版)》第 1 章——概述 重點部分總結

文章目錄 前言一、填空題二、判斷題三、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 1…

《軟件項目管理(第二版)》第 2 章——項目準備和啟動 重點部分總結

文章目錄 前言一、單選題二、判斷題三、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 2…

《軟件項目管理(第二版)》第 3 章——項目計劃 重點部分總結

文章目錄 前言一、單選題二、填空題三、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 3…

《軟件項目管理(第二版)》第 4 章——項目估算 重點部分總結

文章目錄 前言一、單選題二、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 4 章——項目…