什么是中介者模式

更新时间:2023-07-14 13:35:03 阅读: 评论:0

什么是中介者模式
1 定义
中介者模式是⼀种⾏为设计模式,让程序组件通过特殊的中介者对象进⾏间接沟通,达到减少组件之间依赖关系的⽬的。
中介者能使得程序更易于修改和扩展,⽽且能更⽅便地对独⽴的组件进⾏复⽤,因为它们不再依赖于很多其他的类。
2 例⼦
假如有房东,中介,房客三种⾓⾊,房东有房⼦可以出租就通知中介,中介把这条信息通知给所有房客,房客看到信息后进⾏处理,同理,房客有求助需求,也把求助信息通知给中介,中介把这条信息通知给房东,房东看到信息后进⾏处理。
3 实现
⾸先,声明中介者接⼝并描述中介者和各种组件之间所需的交流接⼝。
public interface IMediator
{
void Notify(object nder, string ev);
}
然后,实现具体中介者类。
class ConcreteMediator : IMediator
{
private readonly LandlordComponent landlordComponent;
private readonly TenantComponent tenantComponent;
public ConcreteMediator(LandlordComponent landlordComponent, TenantComponent tenantComponent)
{
this.landlordComponent = landlordComponent;
this.landlordComponent.SetMediator(this);
女公务员退休年龄
}
public void Notify(object nder, string ev)
{
if (ev == "求租")
{
Console.WriteLine("中介收到求租信息后通知房东。");
landlordComponent.DoB();
}
if (ev == "出租")
{
Console.WriteLine("中介收到出租信息后通知房客。");
tenantComponent.DoD();
}
}
}
接着,组件基础类会使⽤中介者接⼝与中介者进⾏交互。鸡巴痒
class BaComponent
{
protected IMediator mediator;爆笑宠妃爷我等你休妻
public void SetMediator(IMediator mediator)
{
}
}
接着,具体组件房东,房客类,房东不与房客进⾏交流,只向中介者发送通知。
// 4. 具体组件房东
class LandlordComponent : BaComponent
{
public void DoA()
{
Console.WriteLine("房东有房⼦空出来了,向中介发送出租信息。");
}
public void DoB()
{
好看的锁屏壁纸
Console.WriteLine("房东收到求租信息,进⾏相应的处理。");
}
}
// 具体组件房客
class TenantComponent : BaComponent
读易{
public void DoC()
{
Console.WriteLine("房客没有房⼦住了,向中介发送求租信息。");
}
public void DoD()
{
插花活动方案Console.WriteLine("房客收到出租信息,进⾏相应的处理。");
}
}
最后,创建客户端类。
/
签证工
/ 客户端代码
class Program
{
static void Main(string[] args)
{
LandlordComponent landlordComponent = new LandlordComponent();        TenantComponent tenantComponent = new TenantComponent();
new ConcreteMediator(landlordComponent, tenantComponent);
landlordComponent.DoA();
Console.WriteLine();
tenantComponent.DoC();
Console.ReadKey();
}
孕妇能吃杨梅吗}
让我们来看看输出结果:
房东有房⼦空出来了,向中介发送出租信息。
中介收到出租信息后通知房客。
房客收到出租信息,进⾏相应的处理。
房客没有房⼦住了,向中介发送求租信息。
中介收到求租信息后通知房东。
房东收到求租信息,进⾏相应的处理。

本文发布于:2023-07-14 13:35:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1081219.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   组件   房东   通知   客户端
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图