中介者模式 C#
2016-01-11 15:01
573 查看
相亲的时候如果有个媒婆,那么就会避免很多不必要的麻烦了撒。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
public abstract class Person
{
public string Name
{
get;
set;
}
public string Condition
{
get;
set;
}
public abstract void GetPartner(Person p);
}
public class Mediator
{
public Women Women
{
get;
set;
}
public Man Man
{
get;
set;
}
public void GetPartner(Person w, Person m)
{
if (w.GetType() == m.GetType())
{
Console.WriteLine("same sex");
}
else if (w.Condition == m.Condition)
{
Console.WriteLine(w.Name + " and " + m.Name + " match");
}
else
{
Console.WriteLine(w.Name + " and " + m.Name + " not match");
}
}
}
public class Man:Person
{
public Mediator Mediator
{
get;
set;
}
public Man(string name, string condition, Mediator m)
{
this.Name = name;
this.Condition = condition;
this.Mediator = m;
Mediator.Man = this;
}
public override void GetPartner(Person p)
{
this.Mediator.GetPartner(this, p);
}
}
public class Women : Person
{
public Mediator Mediator
{
get;
set;
}
public Women(string name, string condition, Mediator m)
{
this.Name = name;
this.Condition = condition;
this.Mediator = m;
m.Women = this;
}
public override void GetPartner(Person p)
{
this.Mediator.GetPartner(this, p);
}
}
static void Main(string[] args)
{
Mediator m = new Mediator();
Person zk = new Man("zk", "5", m);
Person yzl = new Women("yzl", "5", m);
zk.GetPartner(yzl);
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
public abstract class Person
{
public string Name
{
get;
set;
}
public string Condition
{
get;
set;
}
public abstract void GetPartner(Person p);
}
public class Mediator
{
public Women Women
{
get;
set;
}
public Man Man
{
get;
set;
}
public void GetPartner(Person w, Person m)
{
if (w.GetType() == m.GetType())
{
Console.WriteLine("same sex");
}
else if (w.Condition == m.Condition)
{
Console.WriteLine(w.Name + " and " + m.Name + " match");
}
else
{
Console.WriteLine(w.Name + " and " + m.Name + " not match");
}
}
}
public class Man:Person
{
public Mediator Mediator
{
get;
set;
}
public Man(string name, string condition, Mediator m)
{
this.Name = name;
this.Condition = condition;
this.Mediator = m;
Mediator.Man = this;
}
public override void GetPartner(Person p)
{
this.Mediator.GetPartner(this, p);
}
}
public class Women : Person
{
public Mediator Mediator
{
get;
set;
}
public Women(string name, string condition, Mediator m)
{
this.Name = name;
this.Condition = condition;
this.Mediator = m;
m.Women = this;
}
public override void GetPartner(Person p)
{
this.Mediator.GetPartner(this, p);
}
}
static void Main(string[] args)
{
Mediator m = new Mediator();
Person zk = new Man("zk", "5", m);
Person yzl = new Women("yzl", "5", m);
zk.GetPartner(yzl);
}
}
}
相关文章推荐
- .net 工程log4net的使用
- c#借助CommandLineParser写命令行工具
- c#大圣之路——c#获取DataGrid中选中行某一列的数据,传到其他页面,实现页面间数据传递
- 状态者模式 c#
- 责任链模式 c#
- C#设计模式01-工厂方法模式(附源码)
- C#学习论坛——认识志同道合的朋友
- C#中HashTable的用法
- C#中int,string,char[],char的转换(待续)
- C# 事务高效率插入数据
- C#委托的介绍(delegate、Action、Func、predicate)
- c#基本函数应用2
- Genesis2000使用c#开发脚本
- c#中获取主机名和端口
- C#: XML Serializer
- C#基础总结之Attribute
- c#基本函数应用1
- C#中Invoke和BeginInvoke的区别
- Genesis2000用c#开发外挂
- C# EF6 更新对象