作用:
用一个中介对象来封装一系列的对象操作。中介者使各对象不需要显式地相互交互,从而使其耦合松散,而且可以独立地改变它们之间的交互。
正文:
中介者模式是一个简单易用的模式。也许很多人在实际的项目中都已经用到过了,只是不知道它就是中介者模式。它把多对多的交互变成了一对多的交互,从而简化的交互,理清了思路。
让我们来看个例子。
去年买了一套二手房(在杭州没钱的人只能这样了),中间的手续还是挺多的,看了让人心慌。
粗略的列了下:
1. 自己要和房东讲价钱。
2. 到银行贷款。
3. 卖方也是银行贷款的,要把我的帐户钱转到卖方帐户上。
4. 到政府机构办理证件。
我这里把政府机构简化了,因为办的证太多,涉及的部门也很多,在中国就是这样,七证八税的,而且这些部门都分开,让你跑的死去活来。
看来还是通过房屋买卖中介吧,他们对这一行业都很熟悉,办的速度也快,就是要破财,心疼啊。
这样,条理就清楚多了。
1. 我让中介去谈价。
2. 中介为我办理贷款的一切手续。
3. 我把钱打入中介开的一个中转帐户。
4. 中介为我办理证件。
这样我唯一接触的对象就是房屋买卖中介,有事我就找中介,中介需要我的时候,就会联系我,我还是边工作边买房,。这多简单,当然在这里我深深地体会的钱的好处。
到这里,我想读者可能明白了中介者模式了。那接下来就上升到理论了。
Mediator:(中介者)
定义了接口与各同事类交互。
CConcreteMediator:(具体中介者)
创建并协调各个同事类。
Colleague Class: (同事类)
每个同事者都知道中介者对象。
在需要与其它同事类通讯时,通知中介者。
在这里,一个同事类要与其它同事类通讯时,要通知中介者,然后由中介者去通知其要通讯的同事类,是不是可以用上观察者模式(Observer)了?每个同事类都是被观察者,而中介对象就是观察者。
中介者模式断绝各个同事类之间的直接交互,把复杂的交互交给了中介者。“与其多个人累,不如我一个人来累”,这就是中介者模式的精神。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架