本文主要是介绍《大话》之 中介者模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.简介:
1.背景:当今世界相对和平,但仍有个别地区,战乱不断,只为和平处理世界争端问题,才有了联合国的成立,说到底,联合国就和婚姻介绍所、房产销售处一样,就是一个中介
2.内容:用一个中介对象来封装一系列的对象交互。(中介者使各对象不需要要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互)。
3.图文并茂:
就是文档中说的,同事1和同事2谁也不认识谁,但是他们都认识中介者,只要把自己的要求告诉中介者就行,其他的什么都不用管,说到这,我想起了老家的媒头老王,他还是很符合这个中介者条件的:
这样,正好大家可以对比着看,大家感觉是第一个好呢,还是第二个好,我自认为,如果一个正常人,没什么事,应该是会喜欢第一种的,因为什么呢?就因为我们的中介者模式的运用。
像第二种,每个姑娘分别要去找三家的小伙子,各个的问,你喜不喜欢我啊?麻烦(首先要知道每个小伙子的年龄、性格、家庭状况等等等)不说,要是被人拒绝,面子上也挂不住。(小伙子也一样,面子上更加挂不住)
而第一种呢,六个年轻人,只需要把自己的情况(年龄、性格、家庭状况等等等)写一张纸条交给老王,那剩下的工作,就要老王来完成,有老王来跑(相对的人的情况告诉男方或者女方),到时候只需要直接让中意的两个人见面,差不多就结婚,就好了,而他们六个年轻人呢,再见面之前也就是寻找对象这个行为完成之前,根本就谁也不认识谁,就更没有之前的麻烦和面子问题了,但是老王就辛苦了,所以媒婆也要拿红包的
四.实战
<span style="font-size:18px;"> abstract class MeiPo //抽象中介者类{public abstract void Send(string message, Younger younger); //定义 一个抽象的发送消息方法,得到年轻人对象和发送消息}abstract class Younger //抽象年轻人类{protected MeiPo meipo;public Younger(MeiPo meipo){this.meipo = meipo;}}class ConcreteMeiPo : MeiPo //具体中介者类{private Girl gril;private Boy boy;public Girl girl{set { girl = value; }}public Boy boy{set { boy = value; }}</span>
<span style="font-size:18px;"> public override void Send(string message,Younger younger) //重写消息的发送的方法,根据对象做出水发消息</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span> {</span>
<span style="font-size:18px;"> if(younger==girl){ girl.Notify(message);}</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>else{bou.Notify(message);}</span>
<span style="font-size:18px;"> }}class Girl : Younger{public Girl(MeiPo meipo): base(meipo){ }public void Send(string message){meipo.Send(message,this);}public void Notify(string message){Console.WriteLine("我看到了所有男生的信息,我喜欢郑家小伙");}}class Boy : Younger{public Boy(MeiPo meipo): base(meipo){ }public void Send(string message){meipo.Send(message, this);}public void Notify(string message){Console.WriteLine("我看到了所有女生的信息,我喜欢李家姑娘");}}</span>
小结:
学习了中介者模式,我们对于多对多的 处理方式上方便了很多,但是是否任何地方都能运用呢?答案当然是否定的,就我自己的认识来说。当系统中的一组对象定义非常明确但是却以发杂的方式进行联系时,我们就可以考虑一下中介者,将整一组对象给他分明确,然后抽象出一个中介来处在他们之间为他们处理,这样,思路和条例就会明确很多,还可以减少子类的数量,很是方便
这篇关于《大话》之 中介者模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!