C#中介者模式解决程序员七夕缘分问题
151 浏览量
更新于2024-08-28
收藏 108KB PDF 举报
"C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例"
中介者模式是软件设计模式中的一种结构型模式,它主要用于简化对象之间的交互,通过引入一个中介对象来封装一系列的对象交互。在本例中,这个中介对象被称为“缘分”大师(YuanFen),它负责协调程序员与美女之间的交流,以此解决程序员在七夕节寻找缘分的问题。
首先,让我们详细了解一下中介者模式的核心概念。在传统的多对多交互中,每个对象都可能与其他多个对象有直接的通信关系,这会使得类的结构变得复杂,难以维护。中介者模式通过将这些直接的交互集中到一个单独的中介类中,使得各个对象只需与中介对象进行交互,减少了耦合度。
在本示例中,有三个程序员(Programmers)角色和六个美女(Girls)角色。他们都希望找到自己的另一半,并且都将“缘分”大师作为中介来传递信息。程序员向缘分大师发送他们的需求,而美女则等待缘分大师为她们传递信息。当信息被传递时,缘分大师会处理这些请求并确保正确的对象接收到相应信息。
具体到代码实现,我们有两个主要的类:`Girls` 和 `Programmers`。`Girls` 类代表美女,每个美女都有一个名字,并且有一个 `YuanFen` 属性,用于引用缘分大师对象。`SendMessage` 方法用于通过缘分大师向心仪的程序员发送信息,而 `ReceiveMessage` 方法则用于接收来自程序员的回复。
```csharp
public class Girls
{
public string Name { get; set; }
public YuanFen YuanFen { get; set; }
public void SendMessage(Dictionary<string, string> name_message)
{
YuanFen.SendToBoys(name_message);
}
public void ReceiveMessage(string msg)
{
Console.WriteLine(msg);
}
}
```
`Programmers` 类(未完全显示)应该具有类似的结构,包含程序员的名字和一个指向缘分大师的引用。程序员会通过缘分大师发送信息给美女,同样也会收到回复。
`YuanFen` 类作为中介者,它将实现接收和分发信息的逻辑。这个类可能会包含一个方法来存储程序员和美女的信息,并根据他们的需求匹配和传递消息。例如,它可以有一个 `SendToBoys` 方法,用于将美女的信息广播给所有的程序员,以及一个内部机制来处理程序员的回复并将其传递给相应的美女。
通过这种方式,中介者模式有效地解耦了程序员和美女之间的直接联系,使得代码更加清晰和易于扩展。如果以后需要添加新的角色或更改消息传递的方式,只需要修改中介者类即可,而不需要改动其他对象。这种模式在大型系统中尤其有用,可以降低系统复杂性并提高可维护性。
179 浏览量
点击了解资源详情
121 浏览量
121 浏览量
2008-09-16 上传
2021-01-20 上传
198 浏览量
101 浏览量
weixin_38502428
- 粉丝: 6
- 资源: 886
最新资源
- 西藏 乡镇级区划图 shp格式
- ckserver-开源
- Geronimo-Updater
- getdelta:获取两点之间坐标变化的简单小部件。-matlab开发
- ksbtechies-crx插件
- 算术计算和排序:基本算术计算和排序练习
- OBD完整协议.rar
- JS实现全景预览图片效果-360°旋转查看.rar
- Miracle:JavaScript Sega主系统模拟器
- XSockets-开源
- hipsum:Hangul Lorem Ipsum
- hyperspace:开源索引子系统,可将基于索引的查询加速带入Apache Spark:trade_mark:和大数据工作负载
- 车架1-阿蒂维达德-决赛
- ZD OSS-开源
- XX矿业有限公司规章制度汇编
- train-db-