• 设计模式(5)---代理模式


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

    #include "stdafx.h"
    #include <memory>
    #include <iostream>
    
    using namespace std;
    
    class Subject
    {
    public:
        virtual void Request(void) = 0;
    };
    
    class RealSubject : public Subject
    {
    public:
        virtual void Request(void)
        {
            cout << "This is real request." << endl;
        }
    };
    
    class Proxy : public Subject
    {
    public:
        virtual void Request(void)
        {
            if (nullptr == subject_)
            {
                subject_ = make_shared<RealSubject>();
            }
            subject_->Request();
        }
    private:
        shared_ptr<Subject> subject_;
    
    };
    
    int main()
    {
        shared_ptr<Subject> obj = make_shared<Proxy>();
        obj->Request();
        return 0;
    }

      代理模式使用的场合:

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

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

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

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

  • 相关阅读:
    git提交代码
    python把&#DDDDDD转换为中文
    mac下载安装airtest
    mac安装指定版本的python
    python操作habse
    pyspark操作数据库
    Scrapy_redis爬虫项目
    python实现对列表元素是字典的排序
    postman使用
    图书推荐
  • 原文地址:https://www.cnblogs.com/cauchy007/p/5347605.html
Copyright © 2020-2023  润新知