代理是把同样的方法赋予对方
委托是创建和某个对象同样的方法
两个合并起来操作,如下:
public class DelegateAndAgentPattern { public void Main() { Boss boss = new Boss(); Secretary secretary = new Secretary(boss); secretary.PayWages(); secretary.GiveOutWelfare(); } } /// <summary> /// 老板类 /// </summary> class Boss { public void PayWages() { Console.WriteLine("老板发工资了!"); } public void GiveOutWelfare() { Console.WriteLine("老板发福利了!"); } } /// <summary> /// 一个有老板的秘书,老板吩咐你这些事情可以做 /// </summary> class Secretary { private Boss boss; /// <summary> /// 找个老板 /// </summary> /// <param name="boss"></param> public Secretary(Boss boss) { this.boss = boss; } /// <summary> /// 老板说你可以代我发工资 /// </summary> public void PayWages() { boss.PayWages(); } /// <summary> /// 老板说你可以代我发福利 /// </summary> public void GiveOutWelfare() { boss.GiveOutWelfare(); } }
这种组合用于客户端等待服务器回调,到来后可以调用,通知请求者。
浙公网安备 33010602011771号