首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式無廢話系列二十:中介者模式(一)—— 意圖與問題場景

     編輯:關於C語言

意圖

用一個中介對象封裝一系列對象的交互,使各對象不需顯式相互引用,從而鬆散耦合,且可獨立改變它們之間的交互。

問題場景

網絡遊戲常有多個大區(每區一組或多組伺服器)。為效率,每區通常有獨立資料庫,玩家建角色、儲值、消費僅在該區有效。新需求:玩家資訊需跨大區共享——註冊時寫入多區、某區儲值需「通知」其他區修改餘額、消費同理。

若有 ABC 三大區,直觀做法極其混亂:

  • 網站註冊呼叫 A、B、C 註冊
  • A 充值呼叫 B、C 充值
  • B 充值呼叫 A、C 充值
  • C 充值呼叫 A、B 充值
  • 消費同理,各區互相呼叫……

無人會這麼做。自然會想到統一維護處,所有大區行為不直接關聯,全部提交給 AccountSystem 統籌。好處:

  • 各大區無需關心其他大區,只與 AccountSystem 對話。
  • 僅調整 AccountSystem 即可改變交互策略(如僅 A、B 共享,C、D 共享)。
  • 利於擴充:新增大區無需修改既有大區代碼,統一由 AccountSystem 安排。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved