设计模式(十一)proxy代理模式

1.使用场景:有些对象由于某些原因,直接访问会给使用者、或者系统结构带来很多麻烦
2.定义:为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问
3.步骤:增加一层间接层
4.应用:copy-on-write技术

原代码:

class ISubject{
public:
    virtual void process();
};


class RealSubject: public ISubject{
public:
    virtual void process(){
        //....
    }
};

class ClientApp{
    
    ISubject* subject;
    
public:
    
    ClientApp(){
        subject=new RealSubject();
    }
    
    void DoTask(){
        //...
        subject->process();
        
        //....
    }
};


使用proxy设计模式的代码:

class ISubject{
public:
    virtual void process();
};


//Proxy的设计
class SubjectProxy: public ISubject{
    
    
public:
    virtual void process(){
        //对RealSubject的一种间接访问
        //....
    }
};

class ClientApp{
    
    ISubject* subject;
    
public:
    
    ClientApp(){
        subject=new SubjectProxy();
    }
    
    void DoTask(){
        //...
        subject->process();
        
        //....
    }
};




猜你喜欢

转载自blog.csdn.net/wxf2012301351/article/details/74364820
今日推荐