C#设计模式:Mediator中介者模式解决程序员七夕缘分问题
37 浏览量
更新于2024-09-01
收藏 100KB PDF 举报
"C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例"
中介者模式是一种设计模式,它将多个对象之间的复杂交互简化为与一个中介对象的交互,降低了对象间的耦合性。在C#中,中介者模式通常用于实现对象之间的松散耦合,使得各个对象不必显式地相互引用,而是通过中介者进行通信。这样,当一个对象的状态改变时,只需要通知中介者,由中介者负责广播这个变化,避免了对象间的直接通信导致的复杂性。
在上述的七夕缘分问题中,程序员和美女们寻找彼此的缘分,可以看作是多个对象(程序员和美女)之间的交互。为了简化这种交互,引入了"缘分大师"(YuanFen)作为中介者,它负责处理程序员和美女们之间的消息传递。这样,每个程序员或美女只需要与缘分大师交互,而不需要知道其他所有人的存在。
具体编码实现上,首先创建了`Girls`类代表美女,其中包含了美女的名字和一个`YuanFen`属性,表示美女与缘分大师的关联。`SendMessage`方法用于发送信息给所有的程序员,这里信息是以字典形式存储的,键是接收者的名字,值是信息内容。`YuanFen`对象的`SendToBoys`方法负责将信息广播给所有程序员。
同样,可以创建一个`Boys`类代表程序员,具有类似的功能,程序员可以通过`YuanFen`对象向所有美女发送信息。`YuanFen`类作为中介者,会维护程序员和美女的列表,并提供方法来接收和转发消息。
中介者模式的优势在于:
1. **降低耦合**:对象不再直接引用彼此,而是通过中介者进行通信,使得每个对象只需要关注自己的职责,而不必关心其他对象的细节。
2. **集中控制**:所有通信都在中介者中进行,方便控制和调整整体交互逻辑。
3. **可扩展性**:添加新的对象(如更多的程序员或美女)时,只需修改中介者,而不需要修改原有的对象代码。
在实际开发中,中介者模式常用于事件驱动系统、用户界面组件通信、数据库操作等场景,能够有效地组织代码结构,提高代码的可读性和可维护性。
119 浏览量
101 浏览量
115 浏览量
2008-09-16 上传
2021-01-20 上传
198 浏览量
256 浏览量
weixin_38600432
- 粉丝: 1
- 资源: 920
最新资源
- papodev:伊斯坦多尔·斯坦加林Papo de Dev da Isadora Stangarlin
- r2anki:使用r2anki和空格分隔扩展词汇量
- Navicat 15 for PostgreSQL.7z
- opencpu-java-client:一个简单的 OpenCPU Java 客户端库
- 验证通2010示例 java版源代码
- 个人SNS名片组件响应式网页模板
- calculadora-javascipt:Projeto calculadora Hcode
- WittyParrot-crx插件
- Unity 场景切换管理插件
- cs3050-fun-group-project:cs3050 的最终小组项目
- 情绪分析数据集
- kfc123百度手写输入法源代码
- 健康管理app(包括代码以及详细文档)
- Notion Slide Shows-crx插件
- scCancer:用于自动处理癌症中单细胞RNA-seq数据的软件包
- 常见排序算法-C语言