设计模式阅读备忘笔记-中介者模式
2017-09-30 11:53
288 查看
设计模式阅读备忘笔记-中介者模式
中介者模式(Mediator)理解:
Mediator的出现减少了各个Colleague的耦合,使得可以独立地改变和复用各个Colleague类和Mediator。
由于把对象如何协作进行了抽象,将中介作为一个独立地概念并将其封装再一个都想中,这样关注地对象就从对象各自本身地行为装换到它们之间地交互上来,也就是站在一个更宏观地角度去看待系统。
代码例子:
//抽象中介者类 abstract class Mediator { public abstract void Send(string msg, Colleague colleague); } //抽象同事类 abstract class Colleague { protected Mediator mediator; public Colleague(Mediator mediator) { this.mediator = mediator; } } class ConcreteColleague1 : Colleague { public ConcreteColleague1(Mediator mediator) :base(mediator) { } public void Send(string msg) { mediator.Send(msg, this); } public void Notity(string message) { Console.WriteLine(1+ message); } } class ConcreteColleague2 : Colleague { public ConcreteColleague2(Mediator mediator) : base(mediator) { } public void Send(string msg) { mediator.Send(msg, this); } public void Notity(string message) { Console.WriteLine(2+ message); } } //具体中介者类 class ConcreteMediator : Mediator { private ConcreteColleague1 colleague1; private ConcreteColleague2 colleague2; internal ConcreteColleague1 Colleague1 { set { colleague1 = value; } } internal ConcreteColleague2 Colleague2 { set { colleague2 = value; } } public override void Send(string msg, Colleague colleague) { } } class Test { void Main() { ConcreteMediator m = new ConcreteMediator(); ConcreteColleague1 c1 = new ConcreteColleague1(m); ConcreteColleague2 c2 = new ConcreteColleague2(m); m.Colleague1 = c1; m.Colleague2 = c2; c1.Send("msg"); c2.Send("msg"); } }
总结:为已有的功能动态添加更多的功能的一种方式,比如新加的功能和字段仅仅是为了满足一些只在某种特定情况下才会执行的特殊需求,就可以使用装饰模式,把新功能单独写在装饰类中,并用装饰类装饰原来的对象,优点是可以把类中的核心职责和装饰功能分开,简化类。
相关文章推荐
- 设计模式阅读备忘笔记-策略模式
- 设计模式阅读备忘笔记-组合模式
- 设计模式阅读备忘笔记-代理模式
- 设计模式阅读备忘笔记-装饰模式
- 设计模式阅读备忘笔记-原则
- 步步为营 .NET 设计模式学习笔记 二十、Mediator(中介者模式)
- 设计模式笔记(17)---中介者模式(行为型)
- 设计模式学习笔记十八:中介者模式
- 《Python 编程实战:运用设计模式、并发和程序库创建高质量程序》阅读笔记
- 设计模式学习笔记--中介者模式
- 阅读笔记常见的设计模式之三:备忘录模式的简单理解
- 设计模式笔记(17)---中介者模式(行为型)
- 设计模式学习笔记——中介者模式
- java/android 设计模式学习笔记(18)---中介者模式
- 《Head First 设计模式》阅读笔记
- 设计模式学习笔记(23)——中介者模式
- 设计模式笔记:中介者模式
- 设计模式笔记--中介者模式
- 设计模式学习笔记--中介者模式
- 设计模式笔记(17)---中介者模式(行为型)