代理模式——为他人做嫁衣裳

简介: 代理模式——为他人做嫁衣裳

代理(Proxy)模式定义:为其它对象提供一种代理以控制对这个对象的访问。


 代理(Proxy)模式的两个使用场合:


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

虚拟代理,根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象,达到性能最优化。

安全代理,用来控制真实对象访问时的权限。

智能指引,当调用真实对象时,代理处理另外一些事。


1.模式的结构

  装饰模式主要包含以下角色。

Subject类:定义RealSubject和Proxy的共用接口,这样使用RealSubject时就可以使用Proxy。


RealSubject类:定义Proxy所代表的真实实体。


Proxy类:保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体。

2.实例代码

  Subject类

    abstract  class SUBJECT
    {
        public abstract void Request();
    }

  RealSubject类

    class RealSubject:SUBJECT 
    {
        public override void Request()
        {
            Console.WriteLine("真实的请求");
        }
    }

  Proxy类

    class Proxy:SUBJECT 
    {
        RealSubject realSubject; 
        public override void Request()
        {
            if(realSubject ==null)
            {
                realSubject = new RealSubject();
           }
            realSubject.Request();
        }
    }

  客户端代码

    class Program
    {
        static void Main(string[] args)
        {
            Proxy proxy = new Proxy();
            proxy.Request();
            Console.ReadLine();
        }
    }
相关文章
|
4月前
结构型 代理模式
结构型 代理模式
20 0
|
7月前
|
设计模式 缓存 安全
设计模式之代理模式的懂静态代理和动态代理
设计模式之代理模式的懂静态代理和动态代理
63 0
|
1月前
|
缓存 数据安全/隐私保护 C++
【C++】—— 代理模式
【C++】—— 代理模式
|
2月前
|
设计模式 缓存 安全
设计模式-代理模式(静态代理、动态代理、cglib代理)、代理模式和装饰者模式的区别
设计模式-代理模式(静态代理、动态代理、cglib代理)、代理模式和装饰者模式的区别
55 1
|
4月前
|
Java Spring
代理模式
代理模式
34 0
|
7月前
|
Java 网络安全 Maven
代理模式的运用
代理模式的运用
29 0
|
10月前
|
设计模式 JavaScript
关于代理模式我所知道的
关于代理模式我所知道的
57 0
|
10月前
|
Java Spring
代理模式你了解多少
代理模式你了解多少
53 0
|
11月前
|
Arthas Java 测试技术
结构型模式-代理模式
结构型模式-代理模式
53 0
|
设计模式 缓存 监控
我学会了,代理模式
代理模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
76 0
我学会了,代理模式