本文共 2279 字,大约阅读时间需要 7 分钟。
设计模式之八:中介者模式 http://www.taidous.com/thread-49600-1-1.html(出处: 【泰斗社区】-专注互联网游戏和应用的开发者平台)
///使用范围:/// 抽象玩家类 /// public abstract class AbstractPlayer { // 玩家生命值 public double HP { get; set; } // 遭受攻击时候,生命值变化 public abstract void ChangeHP(int num, AbstractMediator Mediator); } ////// 中介者抽象类 /// public abstract class AbstractMediator { protected AbstractPlayer A; protected AbstractPlayer B; public AbstractMediator(AbstractPlayer a, AbstractPlayer b) { A = a; B = b; } // A被攻击 public abstract void AEmbattled(int num); /// B被攻击 public abstract void BEmbattled(int num); } ////// 具体中介者 /// public class MediatorPater : AbstractMediator { private AbstractPlayer a; private AbstractPlayer b; public MediatorPater(AbstractPlayer a, AbstractPlayer b) : base(a, b) { } public override void AEmbattled(int num) { A.HP -= num; } public override void BEmbattled(int num) { B.HP -= num ; } } ////// 玩家A /// public class PlayerA : AbstractPlayer { // 遭受攻击时候,A生命值减少 public override void ChangeHP(int num, AbstractMediator mediator) { mediator.AEmbattled(num); } } ////// 玩家B /// public class PlayerB : AbstractPlayer { // 遭受攻击时候,b生命值减少 public override void ChangeHP(int num, AbstractMediator mediator) { mediator.BEmbattled(num); } }