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(); } }}