[AYJS] wpf设计模式学习[3]-代理模式

场景:为其他对象提供一种代理以控制对这个对象的访问【间接性】

这里使用抽象类方式,你也可以使用接口方式

blob.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值