5.大话设计模式-代理模式

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;



namespace DesignModel

{

    public class Proxy:IAction

    {

        ZQZ zzz = null;

        public Proxy(ZQZ mm)

        {

            zzz = mm;

        }



        public void SendFlower()

        {

            zzz.SendFlower();

        }



        public void SendCake()

        {

            zzz.SendCake();

        }

    }



    public interface IAction

    {

        void SendFlower();

        void SendCake();



    }



    public class ZQZ : IAction

    {

        public string myname { set; get; }



        public void SendFlower()

        {

            Console.WriteLine(myname+"送花");

        }



        public void SendCake()

        {

            Console.WriteLine(myname+"送蛋糕");

        }

    }

}

客户端调用:

5.大话设计模式-代理模式
1  ZQZ zzz = new ZQZ();

2             zzz.myname = "朱建军";

3             Proxy p = new Proxy(zzz);

4             p.SendFlower();

5             p.SendCake();
View Code

代理模式分类:

1. 远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。

例如: webservice 服务

 

2. 虚拟代理, 是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真是对象。

  浏览器当中是用代理模式来优化下载页面的

3.安全代理

  用来控制真实对象访问时的权限。

4.智能指引

是指调用真实对象时,代理处理另外一些事。

你可能感兴趣的:(设计模式)