天天看點

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

介紹

用一個中介對象來封裝一系列的對象互動。中介者使各對象不需要顯式地互相引用,進而使其耦合松散,而且可以獨立地改變它們之間的互動。

示例

有一個Message實體類,某個對象對它的操作有Send()和Insert()方法,現在用一個中介對象來封裝這一系列的對象互動。

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

MessageModel

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Collections.Generic;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Text;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

namespace Pattern.Mediator

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /**//// <summary>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /// Message實體類

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /// </summary>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    public class MessageModel

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /**//// <summary>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// 構造函數

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// </summary>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="msg">Message内容</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="pt">Message釋出時間</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public MessageModel(string msg, DateTime pt)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            this._message = msg;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            this._publishTime = pt;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        private string _message;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// Message内容

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public string Message

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            get 

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{ return _message; }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            set 

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{ _message = value; }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        private DateTime _publishTime;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// Message釋出時間

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public DateTime PublishTime

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{ return _publishTime; }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{ _publishTime = value; }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

}

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

AbstractMessageMediator

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /// 抽象中介者(Mediator)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    public abstract class AbstractMessageMediator

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// 注冊一個操作Message的對象

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="AbstractMessage">AbstractMessage</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public abstract void Register(AbstractMessage AbstractMessage);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// 發送Message

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="from">來自UserId</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="to">發送到UserId</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="mm">Message實體對象</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <returns></returns>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public abstract string Send(string from, string to, MessageModel mm);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

MessageMediator

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /// 中介者(ConcreteMediator)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    public class MessageMediator : AbstractMessageMediator

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        private Dictionary<string, AbstractMessage> _dictionary = new Dictionary<string, AbstractMessage>();

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="abstractMessage">AbstractMessage</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public override void Register(AbstractMessage abstractMessage)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            if (!_dictionary.ContainsKey(abstractMessage.UserId))

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

                _dictionary.Add(abstractMessage.UserId, abstractMessage);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            abstractMessage.AbstractMessageMediator = this;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public override string Send(string from, string to, MessageModel mm)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            AbstractMessage abstractMessage = _dictionary[to];

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            if (abstractMessage != null)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

                return abstractMessage.Insert(from, mm);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            else

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

                return null;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

AbstractMessage

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /// 操作Message抽象類(Colleague)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    public abstract class AbstractMessage

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        private AbstractMessageMediator _abstractMessageMediator;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        private string _userId;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// <param name="userId">UserId</param>

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public AbstractMessage(string userId)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            this._userId = userId;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// UserId

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public string UserId

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{ return _userId; }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// 中介者

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public AbstractMessageMediator AbstractMessageMediator

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{ return _abstractMessageMediator; }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

{ _abstractMessageMediator = value; }

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// 發送Message(由用戶端調用)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public string Send(string to, MessageModel mm)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            return _abstractMessageMediator.Send(_userId, to, mm);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        /// 接受Message(由中介者調用)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public abstract string Insert(string from, MessageModel mm);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

SqlMessage

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /// Sql方式操作Message(ConcreteColleague)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    public class SqlMessage : AbstractMessage

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public SqlMessage(string userId)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            : base(userId)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public override string Insert(string from, MessageModel mm)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            return "Sql方式插入Message(" + from + "發送給" + base.UserId + ")"

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

                + " - 内容:" + mm.Message

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

                + " - 時間:" + mm.PublishTime.ToString();

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

XmlMessage

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    /// Xml方式操作Message(ConcreteColleague)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    public class XmlMessage : AbstractMessage

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        public XmlMessage(string userId)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

            return "Xml方式插入Message(" + from + "發送給" + base.UserId + ")"

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

Test

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Data;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Configuration;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Collections;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Web;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Web.Security;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Web.UI;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Web.UI.WebControls;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Web.UI.WebControls.WebParts;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using System.Web.UI.HtmlControls;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

using Pattern.Mediator;

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

public partial class Mediator : System.Web.UI.Page

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

    protected void Page_Load(object sender, EventArgs e)

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        AbstractMessageMediator messageMediator = new MessageMediator();

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        AbstractMessage user1 = new SqlMessage("user1");

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        AbstractMessage user2 = new SqlMessage("user2");

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        AbstractMessage user3 = new XmlMessage("user3");

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        AbstractMessage user4 = new XmlMessage("user4");

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        messageMediator.Register(user1);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        messageMediator.Register(user2);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        messageMediator.Register(user3);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        messageMediator.Register(user4);

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        Response.Write(user1.Send("user2", new MessageModel("你好!", DateTime.Now)));

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        Response.Write("<br />");

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        Response.Write(user2.Send("user1", new MessageModel("我不好!", DateTime.Now)));

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        Response.Write(user1.Send("user2", new MessageModel("不好就不好吧。", DateTime.Now)));

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        Response.Write(user3.Send("user4", new MessageModel("吃了嗎?", DateTime.Now)));

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        Response.Write(user4.Send("user3", new MessageModel("沒吃,你請我?", DateTime.Now)));

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

        Response.Write(user3.Send("user4", new MessageModel("不請。", DateTime.Now)));

樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)
樂在其中設計模式(C#) - 中介者模式(Mediator Pattern)

運作結果

Sql方式插入Message(user1發送給user2) - 内容:你好! - 時間:2007-5-19 23:43:19

Sql方式插入Message(user2發送給user1) - 内容:我不好! - 時間:2007-5-19 23:43:19

Sql方式插入Message(user1發送給user2) - 内容:不好就不好吧。 - 時間:2007-5-19 23:43:19

Xml方式插入Message(user3發送給user4) - 内容:吃了嗎? - 時間:2007-5-19 23:43:19

Xml方式插入Message(user4發送給user3) - 内容:沒吃,你請我? - 時間:2007-5-19 23:43:19

Xml方式插入Message(user3發送給user4) - 内容:不請。 - 時間:2007-5-19 23:43:19

參考

<a href="http://www.dofactory.com/Patterns/PatternMediator.aspx" target="_blank">http://www.dofactory.com/Patterns/PatternMediator.aspx</a>

OK

<a href="http://files.cnblogs.com/webabcd/Pattern.rar">[源碼下載下傳]</a>