public abstract class Colleage { private string _name; private string _content; public Colleage(string n) { _name = n; } public string Name { get { return _name;} set { _name = value; } }
public string Content { get { return _content;} set{ _content = value; } } public virtual void Talk(){} }
public class ColleageA : Colleage { public ColleageA(string name): base(name){ } public override void Talk() { base.Talk(); Debug.Log("ColleageA说: " + Content); } } public class ColleageB : Colleage { public ColleageB(string name) : base(name) { } public override void Talk() { base.Talk(); Debug.Log("ColleageB说: " + Content); } }
public class ColleageC : Colleage { public ColleageC(string name) : base(name) { } public override void Talk() { base.Talk(); Debug.Log("ColleageC说: " + Content); } }
public abstract class Meaditor { protected List<Colleage> Colleages = new List<Colleage>(); public virtual void AddColleage(Colleage c){} public virtual void RemoveColleage(Colleage c){} public virtual void Notify(Colleage student){} public virtual void Chart(Colleage A, Colleage B){} }
public class QQMeaditor:Meaditor { public override void AddColleage(Colleage c) { Colleages.Add(c); }
public override void RemoveColleage(Colleage c) { Colleages.Remove(c); }
public override void Notify(Colleage student) { int count = Colleages.Count; for (int i = 0; i < count; i++) { Colleages[i].Talk(); } }
public override void Chart(Colleage A, Colleage B) { A.Talk(); B.Talk(); } }
public class Client:MonoBehaviour { void Start() { //创建单个对象和中介对象QQ QQMeditor qq = new QQMeditor(); ColleageA a = new ColleageA("A"); ColleageB b = new ColleageB("B"); ColleageB c = new ColleageB("C");