耦合,緊耦合,松耦合,解耦

2021-09-13 21:26:36 字數 1373 閱讀 7901

一、耦合

耦合是兩個或多個模組之間的相互關聯。在軟體工程中,兩個模組之間的耦合度越高,維護成本越高。因此,在系統架構的設計過程中,應減少各個模組之間的耦合度,以提高應用的可維護性。

二、緊耦合

緊耦合架構本質是client/server的模型,如下圖所示:

優點是:架構簡單、設計簡單、開發周期短、能夠快速的開發、投入、部署、應用。

但隨著集群規模的擴大,系統的穩定性逐漸變差,主要原因如下:

1、同步操作導致對網路資源消耗大。同步操作在資料傳送和資料返回之間,有很大一段是空閒的,這種空閒占用是對網路資源的極大浪費。

2、安全控制力度差,因為伺服器直接暴露給客戶機,容易引發網路攻擊行為。

3、程式**之間關聯度過高,不利於模組化處理。

三、松耦合

松耦合架構本質上是在client/server模型之間加入乙個**,把cs模型變成cas模型。

在新的架構下,客戶機的角色不變,**伺服器承擔起與客戶機的通訊,和對客戶機的識別判斷工作,伺服器位於**伺服器後面,對客戶機來說不可見,它只負責資料處理工作,另外我們也把cs模型的同步操作改為cas的**處理。

如下圖所示:

優點如下:

1、多工並行處理能力獲得極大提公升。

2、實現負載自適應機制(根據當時執行環境,松耦合架構分配並行工作任務,避免超載現象)。

3、基本杜絕了對server服務端的網路攻擊行為,由於**伺服器的隔絕和篩查作用, 同時結合其它安全管理手段,外部攻擊在**伺服器處就被識別和過濾掉了,這樣就保護了後面的伺服器不受影響。

4、非同步操作減少了網路資源消耗和操作關聯。

5、提高了系統的可維護性。

松耦合和緊耦合的對比

緊耦合架構

松耦合架構

工作方式

同步非同步

程式關聯依賴強弱

業務邏輯關係

集中控制

分散控制

設計難度

容易比較複雜

響應能力

快和並行工作量成反比

時效表現

實時無要求

業務使用範圍

簡單計算

複雜計算安全弱

強應用領域

小規模並行處理環境

大規模、超大規模並行環境

系統穩定性弱強

四、解耦

解耦的字面意思是解除耦合關係,但是在軟體工程中,是不可能做到完全解耦的,因此,降低偶耦合度即可以理解為解耦。

參考:

耦合還是解耦合?

我們的許多設計思想中很多地方都體現了解耦合的思想,這是 b 應對易於變化 b 的一種很好的解決手段,而在這些手段中最重要的解決方法就是 b 新增中間層 b 所謂新增中間層 比如我們常見的面向介面程式設計,其實就是新增了乙個中間的層次,遮蔽掉了一些變化,還有就是我們常用的設計模式,什麼 啊,faced...

資料庫耦合 解耦

隨著業務越來越複雜,資料量越來越大,併發量越來越大,資料庫的效能越來越低。好不容易找運維申請了兩台機器,讓dba部署了幾個例項,想把一些業務庫拆分出來,卻發現拆不出來,擴不了容,尷尬!因為資料庫強關聯在一起,無法通過增加資料庫例項擴容,就是乙個耦合的典型案例。場景還原 有乙個公共使用者資料庫db u...

程式設計的解耦和耦合

耦合 coupling 表示兩個子系統 或類 之間的關聯程度。當乙個子系統 或類 發生變化時對另乙個子系統 或類 的影響很小,則稱它們是鬆散耦合的 反之,如果變化的影響很大時,則稱它們是緊密耦合的。耦合的強弱取決於模組間接間的複雜性 引用模組的位置和資料的傳送方式等。解耦就是解除耦合關係。模組間有依...