首页 > 代码库 > 5.大话设计模式-代理模式

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+"送蛋糕");        }    }}

客户端调用:

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.智能指引

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