中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,中介者模式又称为调停者模式。
模式角色与结构:
示例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace CSharp.DesignPattern.MediatorPattern {class Program{static void Main(string[] args){}}// 抽象中介者abstract class Mediator{protected List<Colleague> colleagues; // 用于存储同事对象public void Register(Colleague colleague){colleagues.Add(colleague);}public abstract void Operation();}class ConcreteMediator : Mediator{public override void Operation(){// ...((Colleague)colleagues[0]).ToString(); // 通过中介者调用同事类的方法// ... }}// 抽象同事类abstract class Colleague{protected Mediator mediator; // 维持一个抽象中介者的引用public Colleague(Mediator mediator){this.mediator = mediator;}public abstract void Method1(); // 声明自身方法,处理自己的行为,共中介者调用// 定义依赖方法,与中介者进行通信public void Method2(){mediator.Operation();}}class ConcreteColleague : Colleague{public ConcreteColleague(Mediator mediator): base(mediator){ }public override void Method1(){// ... }} }