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

C# 設計模式:中介者模式基礎實體與抽象中介者 (2/5)

     編輯:關於C語言

資料實體:MessageModel

中介者模式中傳遞的訊息資料:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Mediator
{
    /// 
    /// Message 實體類別
    /// 
    public class MessageModel
    {
        /// 
        /// 建構函式
        /// 
        /// Message 內容
        /// Message 發布時間
        public MessageModel(string msg, DateTime pt)
        {
            this._message = msg;
            this._publishTime = pt;
        }

        private string _message;
        /// 
        /// Message 內容
        /// 
        public string Message
        {
            get { return _message; }
            set { _message = value; }
        }

        private DateTime _publishTime;
        /// 
        /// Message 發布時間
        /// 
        public DateTime PublishTime
        {
            get { return _publishTime; }
            set { _publishTime = value; }
        }
    }
}

抽象中介者:AbstractMessageMediator

定義中介者核心介面:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Mediator
{
    /// 
    /// 抽象中介者(Mediator)
    /// 
    public abstract class AbstractMessageMediator
    {
        /// 
        /// 註冊一個操作 Message 的物件
        /// 
        /// AbstractMessage
        public abstract void Register(AbstractMessage AbstractMessage);

        /// 
        /// 發送 Message
        /// 
        /// 來自 UserId
        /// 發送到 UserId
        /// Message 實體物件
        /// 處理結果
        public abstract string Send(string from, string to, MessageModel mm);
    }
}

抽象同事類別(補充,下一篇實作)

AbstractMessage 作為 Colleague 角色,應包含:

  • UserId 身份屬性
  • AbstractMessageMediator 中介者引用
  • Insert(string from, MessageModel mm) 抽象接收方法

中介者模式 vs 觀察者模式對比

中介者模式適合「多對多、雙向、邏輯複雜」的通訊場景;觀察者模式適合「一對多、單向、狀態同步」場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
維度中介者模式觀察者模式
核心意圖集中管理物件間雙向通訊一對多單向通知
通訊方向任意雙向主題→觀察者單向
耦合度同事只耦合中介者觀察者耦合主題介面
控制邏輯集中在中介者分散在觀察者各自實作
典型場景聊天室、表單驗證、工作流事件通知、模型視圖同步