zoukankan      html  css  js  c++  java
  • 代理模式(Proxy Pattern)

    代理模式(Proxy Pattern)

    概念

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

    模式结构

    1559916446684

    Subject类,定义了RealSubject和Proxy的共同接口,这样就可以在任何使用RealSubject的地方都可以使用Proxy。

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

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

    模式实例与解析

    #include <string>
    #include <iostream>
    
    using namespace std;
    
    class Subject
    {
    public:
        virtual void Request() = 0;
    };
    
    class RealSubject : public Subject
    {
    public:
        virtual void Request() 
        {
            cout << "RealSubject.Request()" << endl;
        }
    };
    
    class Proxy : public Subject
    {
    public:
        virtual void Request()
        {
            realSubject = new RealSubject();
            realSubject->Request();
            delete realSubject;
        }
    private:
        RealSubject * realSubject;
    };
    
    int main()
    {
        Proxy * test = new Proxy();
        test->Request();
        return 0;
    }
    
    

    代理模式的应用

    • 远程代理:可以隐藏一个对象在不同地址空间的事实

    1559918887014

    (没学过这个,不太明白。。)

    • 虚拟代理:通过代理来存放需要很长时间实例化的对象

    1559918943001

    • 安全代理:用来控制真实对象的访问权限
    • 智能引用:当调用真实对象时,代理处理另外一些事

    1559918956395

  • 相关阅读:
    数据库字段包含反斜杠的查询处理
    sql中的日期时间处理
    查询时间的测试
    group by 和 聚合函数的使用
    比较版本号
    sql IIF函数的应用
    win10系统杀毒功能
    php性能的问题
    linux 下ab压力测试
    datatables的学习总结
  • 原文地址:https://www.cnblogs.com/Mered1th/p/10989519.html
Copyright © 2011-2022 走看看