中介者模式c#(媒婆版)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 中介者模式
{
public abstract class Person {
public string Name { get; set; }
public string Condition { get; set; }
public abstract void getPartner(Person p);
}
public class Men : Person
{
public Mediator m
{
get;
set;
}
public Men(string name, string condition, Mediator m)
{
this.Name = name;
this.Condition = condition;
this.m = m;
m.Men = this;
}
public override void getPartner(Person p)
{
this.m.getPartner(this,p);
}
}
public class Women : Person
{
public Mediator m
{
get; set;
}
public Women(string name,string condition ,Mediator m)
{
this.Name = name;
this.Condition = condition;
this.m = m;
m.Women = this;
}
public override void getPartner(Person p)
{
this.m.getPartner(this, p);
}
}
public class Mediator
{
public Women Women { get; set; }
public Men Men { get; set; }
public void getPartner(Person w,Person m)
{
if (w.GetType() == m.GetType())
{
Console.WriteLine("我不是同性恋!");
}
else if (w.Condition == m.Condition)
{
Console.WriteLine(w.Name+"和"+m.Name+"是绝配");
}
else
{
Console.WriteLine(w.Name + "和" + m.Name + "没有门当户对");
}
}
}
class Program
{
static void Main(string[] args)
{
Mediator m = new Mediator();
Person zhangsan = new Men("张三", "5", m);
Person lisi = new Men("李四","5",m);
Person lili = new Women("莉莉","5",m);
Person lihua = new Women("李华","6",m);
zhangsan.getPartner(lisi);
zhangsan.getPartner(lihua);
lisi.getPartner(lili);
Console.ReadKey();
}
}
}
中介者模式c#(媒婆版)的更多相关文章
- C# 中介者模式
中介者模式 中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系.中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为. 结构: 中介者模式设计两个 ...
- 23种设计模式--中介者模式-Mediator Pattern
一.中介者模式的介绍 中介者模式第一下想到的就是中介,房子中介,婚姻中介啊等等,当然笔者也希望来个婚姻中介给我介绍一个哈哈哈,,回归正题中介者模式分成中介者类和用户类,根据接口编程的方式我们再 ...
- MediatorPattern(中介者模式)
/** * 中介者模式 * @author TMAC-J * 研究了这么多设计模式,觉得无非就是几点: * 1.若两个类有耦合关系,设立一个中间类,处理两个类的关系,把两个类的耦合降低 * 2.面向接 ...
- C#设计模式-中介者模式
在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室.QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解. 一. 中介者(Mediator)模式 从 ...
- php实现设计模式之 中介者模式
<?php /* * 中介者模式:用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互 */ /* * 以一个同学qq群为例说明, ...
- 轻松掌握:JavaScript代理模式、中介者模式
代理模式.中介者模式 代理模式 在面向对象设计中,有一个单一职责原则,指就一个类(对象.函数)而言,应该仅有一个引起它变化的原因.如果一个对象承担了过多的职责,就意味着它将变得巨大,引起它变化的原因就 ...
- java设计模式之中介者模式
中介者模式 用一个中介对象来封装一系列的对象交互.中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 中介者模式UML图 中介者模式代码 package com ...
- 中介者模式(Mediator Pattern)
定义一个中介对象来封装系列对象之间的交互.中介者使各个对象不需要显示地相互引用,从而使其耦合性松散,而且可以独立地改变他们之间的交互. Mediator:中介者接口.在里面定义了各个同事之间相互交互所 ...
- C++设计模式-Mediator中介者模式
Mediator中介者模式作用:用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. UML如下: Colleage抽象同事类 ...
随机推荐
- Linux下下载JDK
需要加特殊的前缀,不然无法下载文件 . 例如JDK8 U131 wget -c --header "Cookie: oraclelicense=accept-securebackup-coo ...
- 《DSP using MATLAB》示例 Example 9.10
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- Jenkins构建常见问题
最近在用jenkins搭建.NET自动编译发布环境时遇到的一些问题,解释不一定都对,仅记录以备后用. 1.MSBUILD : error MSB1008: 只能指定一个项目 Build a Visua ...
- mac终端下修改MySQL的编码格式--找不到my-default.cnf及my.cnf
首先请确认正确安装好MySQL. 1- 先配置环境变量path 1.1 打开终端,输入: cd ~ 会进入~文件夹, 1.2 然后输入:touch .bash_profile 回车执行后, 1.3 再 ...
- prisma middleware 简化 graphql resolver 编写的类库
prisma 推出middleware 的目的就是保持resolver 的简洁 作用: 输入参数访问同一个resolver 决定resolver 最终的返回值 在resolver 连中捕获异常以及 ...
- 选择合适的项目-任务管理工具Jira Redmine Trac对比
1.团队开发时,需要一些项目-任务管理工具来分配和控制项目进度状态. 2.可选的项目管理工具有: Jira 收费 自带数据库,可配置mysql 功能强大(支持插件) 易用 Java 性能高 复杂 ht ...
- FastAdmin 的 captcha 是如何来的?
FastAdmin 的 captcha 是如何来的? 如何打开 FastAdmin 的验证吗? 文件位置 C:\www\fastadmin\application\config.php 改 login ...
- 深入理解Java虚拟机,gc输出参数
https://blog.csdn.net/qq_21383435/article/details/80702205
- 【白银组】codevs_1011 数的计算
简单而言,就是递归的运用,注意使用全局变量统计cnt,并且注意递归的结束,中间生成的值无需进行输出. http://codevs.cn/problem/1011/ #include<iostre ...
- Android之NFC
来源:http://blog.csdn.net/bear_huangzhen/article/details/46333421 NFC简介: Near Field Communication 近场通信 ...