針對問題,使用設計模式中的中介者模式可以解耦這種關係。

我們將問題描述的關係UML圖繪製出來,如下:

從上圖的UML圖中我們可以看到三個類之間的依賴關係形成了一個閉環,那麼我們如何能降低這種高度耦合的狀況呢? 這個就可以使用設計模式中的【中介模式】來進行解耦。

中介模式就是用來降低多個對象和類之間的耦合度、降低對象跟類之間的通訊複雜度。通過提供一個中介類,將類之間的耦合部分進行封裝,即將它們耦合的部分提取出出來到中介者模式中,使相互耦合的對象不是顯示的相互引用,從而達到降低耦合的目的。

中介者模式的適用情況就是將對象之間的網狀關係分離為星型結構。

它的優點:

  1. 降低類的複雜性,將一對多關係轉換成一對一關係。

  2. 各個類之間耦合度降低;

  3. 符合迪米特法則;

缺點:中介者類非常龐大,比較難維護

通過中介者模式解耦後的UML圖可以簡化如下:

碼字不易,感謝各位點贊關注一波。


推薦閱讀:
相关文章