• 代理模式(Proxy)


    概念:代理本身不具有功能,为其他对象提供一种代理以控制对这个对象的访问
    概括:代理模式就是在访问对象的时候引入了一些间接性,因为这些间接性,可以附加多种用途。
    C++代码实现:


    
    #include <iostream>
    using namespace std;
    class Base{
        public:
            virtual void fun()=0;
    };
    class Derived:public Base{
        public:
    /*这里才是真正的实现*/
            virtual void fun()
            {
                cout<<"get"<<endl;
            }
    };
    class Proxy:public Base{
        private:
    /*必须基类指针,为了实现多态,指向真正具有功能的对象*/
            Base *p;
        public:
            Proxy(Base *t):Base()
            {
                p=t;
            }
           /*类间通信*/
            void fun()
            {
                p->fun();
            }
    
    };
    int main(void)
    {
        Base *d=new Derived();
        Base *p=new Proxy(d);
        p->fun();
        delete d;
        delete p;
        return 0;
    }

    代理模式一般分为三种,第一,远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
    第二,虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。(比如说浏览器中打开一个很大的HTML网页时,里面可能有很多的文字和图片,但是仍然可以打开它,但是看到的只是汉字,图片却是一张一张的下载的得到的,这里未打开的图片框就是通过虚拟代理替代了真实的图片,此时代理储存了真实图片的路径和尺寸。)
    第三,安全代理,用来控制真实对象时的权限,一般用于对象应该有不同的访问权限的时候。
    第四,智能指引,当调用真实的对象的时候,代理处理另外的一些事。

  • 相关阅读:
    SQL----Scalar 函数
    SQL----Group By and Having
    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
    SQL 函数
    Auto-increment 自动增长
    sql--ALTER
    sql--Drop语句
    sql--index 索引
    sql--select into,create database,create table,Constraints
    sql--union
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457648.html
Copyright © 2020-2023  润新知