自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件架構中的九種耦合形式

開發(fā) 架構
本文介紹了軟件架構中的九種耦合形式,通過了解不同的層次的耦合,架構師和開發(fā)者在設計時就可以做出不同選擇,從而實現(xiàn)針對性的設計。

沒有任何軟件系統(tǒng)可以擺脫依賴關系,或者保證即使依賴組件發(fā)生變化也不會產生任何影響。軟件架構師總是要處理相互連接的組件之間的依賴程度,并盡量減少甚至消除這種影響。如果軟件組件 A 在如下情況下需要軟件組件 B,那么軟件組件 A 就依賴于軟件組件 B:

  • 運行時編譯
  • 安裝
  • 測試
  • 正常運行

耦合是任意架構構件之間的依賴程度。

在不同抽象層次上,存在著不同類型的耦合。耦合不僅發(fā)生在源代碼層面,還發(fā)生在基礎架構以及其他方面。軟件架構師需要了解這些類型,以便在設計這些組件時做出正確決定。我們將根據 ISAQB 軟件架構認證課程來了解這些耦合類型。

通過使用/委托耦合

這種耦合是經典耦合之一?;旧希绻?A 調用類 B 的公有變量,它們就會通過使用/委托耦合在一起。最好的解決方法是將這些公有變量私有化,并通過 getter 調用它們。

通過組合耦合

在組合關系中,正如面向對象編程中所定義的,類 A 包含類 B。在某些情況下,類 B 可以是類 A 的內部部分,并不獨立存在。因此,這些類通過組合關系耦合在一起。

通過構建耦合

這類耦合出現(xiàn)在工廠、抽象工廠等構建設計模式中。在這些設計模式中,類 A 或 B 的構建被委托給工廠類。也就是說,類 A 或 B 是通過構建與工廠類耦合的。

通過繼承耦合

子類繼承超類的屬性和方法的一種依賴關系。通過繼承產生的耦合非常嚴格,因為父類做什么,子類就做什么。

通過信息或事件耦合

消息傳遞中間件和事件存儲廣泛用于組件之間的松散耦合。在消息傳遞中,通信是異步的,發(fā)送方的請求被發(fā)送到消息隊列中,接收方從隊列中獲取請求。發(fā)送方可能知道也可能不知道哪個接收方收到了請求,也不會立即回復。在事件處理中,想法與消息傳遞類似,但這里的狀態(tài)變化是按時間順序傳遞給監(jiān)聽者的。由于這種通信也是異步的,耦合非常松散,因此非常受歡迎。

時序耦合

在這種耦合中,如果 A 組件在 B 組件提供某些輸出之前無法執(zhí)行其工作,那么 A 組件就會暫時依賴于 B 組件。在這種耦合中,組件 A 和組件 B 不需要使用相同的編程語言或基礎設施。例如,要在電商網站中購買一些商品,首先需要選擇并將商品添加到購物車中。

通過數(shù)據類型耦合

根據業(yè)務需要,開發(fā)者會創(chuàng)建一些自定義數(shù)據類型以供進一步使用。例如,在 JPA 中創(chuàng)建的 UserEntity 與數(shù)據庫中的 User 表相對應。因此,UserEntity 將成為軟件系統(tǒng)中的核心數(shù)據類型,在任何需要處理用戶數(shù)據的地方都可以使用。如果 UserEntity 有微小的變化,所有依賴類都會受到影響。這就是通過數(shù)據類型實現(xiàn)的耦合。

通過數(shù)據耦合

當組件 A 在數(shù)據庫、配置文件或環(huán)境變量中持久化保存信息,而組件 B 也與之通信時,就會出現(xiàn)數(shù)據耦合。如果一個組件的變化通過這些耦合數(shù)據影響到另一個組件,那么很可能需要松開這些耦合。

通過硬件耦合

設想有一個物理硬件或服務器,組件 A 在內存位置寫入了一些內容,組件 B 在讀取這些內容時也會受到影響。這種耦合是通過硬件實現(xiàn)的,經常發(fā)生在底層編程中。

責任編輯:趙寧寧 來源: DeepNoMind
相關推薦

2020-04-10 20:32:44

網絡安全黑客隱私

2018-12-28 09:00:00

2022-11-17 15:17:12

Java數(shù)據結構Map

2025-01-20 09:00:00

架構開發(fā)代碼

2013-02-18 09:54:05

軟件開發(fā)程序員

2018-07-13 09:38:54

2020-06-28 10:15:39

架構模式軟件

2021-06-04 10:45:31

軟件架構分布式

2017-09-14 09:30:38

軟件架構模式

2010-10-11 10:31:51

MySQL分區(qū)

2023-12-01 07:24:40

軟件架構

2024-06-19 19:17:04

2010-07-05 09:37:19

ucd-snmpsnmpd擴展

2013-09-30 10:12:44

Android DiaAndroid

2021-08-15 10:08:36

勒索軟件惡意軟件安全

2024-10-17 16:01:02

2011-12-28 10:10:54

2010-05-28 09:10:29

遠程協(xié)助軟件

2012-08-20 15:14:23

2020-10-09 06:52:31

設計模式軟件
點贊
收藏

51CTO技術棧公眾號