【设计模式】12.代理模式

说明:像说的那样客户端和程序中间加了一层代理,如果是无功能的代理,加了也是白加,做个占坑作用吧。功能型的有:

   单例代理,1.远程代理,2.虚拟代理,3.Copy-on-Write代理,4.保护代理,5.防火墙代理,6.智能引用代理,7.Cache代理

实现:

public abstract class ABS_Parson
    {
        public abstract void BuyProduct();
    }

    public class Parson :ABS_Parson
    {
        public override void BuyProduct()
        {
            //实现方法
        }
    }

    public class FriendProxy : ABS_Parson
    {
        private Parson p = new Parson();
        public override void BuyProduct()
        {
            //代理方法
            this.Buylist();
            p.BuyProduct();
        }

        public void Buylist()
        {
            //代理自己的方法,比如购买弄张清单。
        }
    }


    //执行
    public class test
    {
        public void start()
        {
            ABS_Parson p = new FriendProxy();
            p.BuyProduct();
        }
    }

 

 

20220830补充:

意义:不破坏业务实现类,比如业务类加个日志,加个缓存,感觉AOP更好吧。

posted on 2020-08-21 16:07  一个小目标一次坑记录  阅读(116)  评论(0)    收藏  举报