博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式14-中介者模式
阅读量:5304 次
发布时间:2019-06-14

本文共 2076 字,大约阅读时间需要 6 分钟。

中介者模式:用一个中介对象来封装一系列的对象交互。使各对象不需要显式地相互引用,从而使耦合松散,而且可以独立改变它们之间的交互(中介)。

 

1 namespace DesignModel.中介模式 2 { 3     ///  4     /// 抽象中介者 5     ///  6     abstract class Mediator 7     { 8         public BigGuy bigguy { get; set; } 9         public HiMan himan { get; set; }10         public abstract void Send(string msg, Body body);11     }12     /// 13     /// 前台类(通过前台找到公司其他同事)14     /// 15     class QianTai : Mediator16     {17 18         public override void Send(string msg, Body body)19         {20             if (typeof(Body) == typeof(BigGuy))21             {22                 himan.Recive(msg);23             }24             else25             {26                 bigguy.Recive(msg);27             }28         }29     }30 31     abstract class Body32     {33         protected Mediator med;34         public Body(Mediator mediator)35         {36             med = mediator;37         }38     }39     class BigGuy : Body40     {41         public BigGuy(Mediator med) : base(med) { }42         public void Send(string msg)43         {44             med.Send("", this);45         }46         public void Recive(string msg)47         {48             Console.WriteLine(msg);49         }50     }51     class HiMan : Body52     {53         public HiMan(Mediator med) : base(med) { }54         public void Send(string msg)55         {56             med.Send("", this);57         }58         public void Recive(string msg)59         {60             Console.WriteLine(msg);61         }62     }63 64 }65 66 67   static void 中介模式()68         {69             Mediator qiantai = new QianTai();70             BigGuy bigguy = new BigGuy(qiantai);//同事需要认识前台71             HiMan himan = new HiMan(qiantai);72             qiantai.bigguy = bigguy;//前台需要认识同事73             qiantai.himan = himan;74 75             bigguy.Send("hi, who can fuck me?");76             himan.Send("hi,bigguy,bu yao xiao zhang");77         }
View Code

 

结构上需要注意的是,中介者将具体同事类做为了属性,注意使用时让中介(前台)“认识”(获得依赖)所有同事,让同事都"认识"(获得依赖)中介(前台)。

缺点:随意具体对象数量多到一定程序,中介对象的业务将会变得更加复杂而不好维护。

 

转载于:https://www.cnblogs.com/liurui/p/5565157.html

你可能感兴趣的文章
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
HDU4405--Aeroplane chess(概率dp)
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>
MVC,MVP 和 MVVM 的图示,区别
查看>>
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
虚拟DOM
查看>>
自建数据源(RSO2)、及数据源增强
查看>>