using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*
 
 
 中介者模式
 
 * 
 * 集中控制
 * 所有的操作都通过中介进行转发处理
 
 
 */
namespace App_MYCS.HDL_SJMS.ZJMS.ZJMS
{
    class my_ZJMS
    {
        public void DY()
        {
            ConcreteMediator cm = new ConcreteMediator();//中介者类
            Colleague1 c1 = new Colleague1(cm);
            Colleague2 c2 = new Colleague2(cm);
            //中介认识所有同事类
            cm.Colleaguel = c1;
            cm.Colleague2 = c2;
            //
            c1.Send("aaaa");
            c2.Send("bbbb");
}
}
    //抽像中介者类
    abstract class Mediator
    {
        public abstract void Send(string message,Colleague colleague);
    }
    //中介者类
    class ConcreteMediator : Mediator 
    {
        private Colleague1 colleaguel;
        internal Colleague1 Colleaguel
        {
          set { colleaguel = value; }
        }
        private Colleague2 colleague2;
        internal Colleague2 Colleague2
        {
          set { colleague2 = value; }
        }
        public override void Send(string message, Colleague colleague)
        {
            if (colleague == colleaguel)
            {
                colleague2.Notify(message);
            }
            else 
            {
                colleaguel.Notify(message);
            }
        }
        
    }
    //抽像同事类
    abstract class Colleague
    {
        protected Mediator mediator;
        public Colleague(Mediator m)
        {
            this.mediator = m;
        }
    }
    //各种同事类
    class Colleague1 : Colleague
    {
        public Colleague1(Mediator m)
            :base(m)
        { 
            
        }
        //通过中介类进行发送
        public void Send(string message)
        {
            mediator.Send(message,this);
        }
        public void Notify(string message)
        {
            Console.WriteLine("同事1 得到消息"+message);
        }
    }
    class Colleague2 : Colleague
    {
        public Colleague2(Mediator m)
            : base(m)
        {
}
        public void Send(string message)
        {
            mediator.Send(message, this);
        }
        public void Notify(string message)
        {
            Console.WriteLine("同事2 得到消息" + message);
        }
    }
}
原文:http://www.cnblogs.com/longkai178/p/5815112.html