架構設計之充分解耦的實現

業務功能性

模塊,組件,類,三種層次的定義

系統設計的關鍵所在

  1. 可擴展
  2. 解耦
  3. 高併發
  4. 高性能
  5. 橫向擴容
  6. 高可用

其中1-2爲了解決複雜業務,3-6爲了解決業務增長問題

耦合

耦合
上圖就是一種耦合,模塊A的代碼內方法直接去訪問模塊B中的一個方法。關於這種調用我們也可以稱爲具象調用
引入一個概念:越抽象越趨於穩定,越具象越趨於紊亂。

解耦實現

1.面向接口編程

接口
  接口是常用的解耦方式也可以稱爲抽象調用,只要接口穩定,實現代碼隨意改動不影響調方代碼。
  但是這種方式有一個致命改動就是接口變動。如上圖IA接口變動所有調用IA的地方均需改動。當然可以利用適配器設計模式來加強接口穩定性。
  缺陷:接口穩定性難以保證,接口一旦變動,相關業務邏輯代碼均需要修改。

2.消息編程

  假設A模塊要調用B模塊的功能,但是又不去調B的任何函數,甚至模塊可以直接摘掉,也不影響系統運行,僅僅是缺少了這部分功能而已。
就像火車一樣,摘下來一節車廂裝上去一節車廂,火車都可以正常運行。
消息解耦
  如上圖所示,A要去調B的功能具體實現步驟如下,此過程僅僅說明了單次調用,沒有進行返回參數的回寫。(原理相同,在進行一次領域模型寫入,與消息傳遞即可)

  1. A模塊先將傳入參數保存到領域模型內
  2. 將調用消息上載到消息中心
  3. 消息中心將消息調用推到B模塊
  4. B模塊去獲取領域模型,至此完成參數傳遞及調用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章