proxy模式

Proxy模式

一.意圖

爲其他對象提供一種代理以控制對這個對象的訪問

 

二.適用性

在需要用比較通用和複雜的對象指針代替簡單指針的時候,使用proxy模式。遠程代理,虛代理,保護代理,只能指引

當第一次引用一個持久對象時,將它裝入內存

在訪問一個實際對象前,檢查是否已經鎖定了它,以確保其他對象不能改變它。

 

三.結構

 

 


四.代碼

#include<iostream>

#include<stdio.h>

#include<stdlib.h>

#include<vector>

#include<math.h>

 

usingnamespacestd;

//proxymode

 

//interface

classCSubject

{

public:

    virtualvoidRequest()

    {}

};

 

//realsubject

classCRealSubject:publicCSubject

{

public:

    virtualvoidRequest()

    {

        cout<<"CRealSubject:Request-------"<<endl;

    }

};

 

//proxy

classCProxy:publicCSubject

{

public:

    CProxy()

    {}

    ~CProxy()

    {

        if(m_pRealSubject!=NULL)

        {

            deletem_pRealSubject;

            m_pRealSubject=NULL;

        }

    }

    virtualvoidRequest()

    {

        if(m_pRealSubject==NULL)

        {

            m_pRealSubject=newCRealSubject();

        }

 

        m_pRealSubject->Request();

    }

 

private:

    CRealSubject*m_pRealSubject=NULL;

};

 

intmain()

{

    cout<<"HelloWorld!"<<endl;

    //實現

    CProxyproxy;

 

    //...

    //...

 

    //使用加載

    proxy.Request();

    return0;

}

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章