场景:为其他对象提供一种代理以控制对这个对象的访问【间接性】
这里使用抽象类方式,你也可以使用接口方式
2016-5-23 13:26:43 我们就拿2016年最热门的行业,送外卖来举例子吧,我已经最精简代码了,这里最好商家和骑手也抽象出来
public abstract class WaiMaiService { public abstract void SendToCustomer(); } public class KFCBusiness : WaiMaiService { public override void SendToCustomer() { Console.WriteLine("KFC的外卖,派送了"); } } public class QiShou_ZhangSan : WaiMaiService { KFCBusiness kfc; public QiShou_ZhangSan(KFCBusiness _kfc) { this.kfc = _kfc; } public override void SendToCustomer() { if (kfc != null) { kfc.SendToCustomer(); } } }
使用方法
QiShou_ZhangSan zhangsan = new QiShou_ZhangSan(new KFCBusiness()); zhangsan.SendToCustomer();
效果输出:KFC的外卖,派送了
这里有一点要说,真正使用的时候,new KFCBusiness要隐藏起来,直接,骑手 =new 骑手。具体那个实例,在自己的类中,自己接到订单后,自己实例化。客户端不应该看见。隐藏KFC