大胖的部落格

Just a note

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  112 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks
具体实现类继承于抽象基类,Proxy类也继承于抽象基类,并有一个实现类类型的指针,当需要时才创建实现类对象,调用实现类的函数。

#include<iostream>

using namespace std;

//抽象基类
class Subject
{
public:
    
virtual void Request() = 0;
}
;

//实现类
class RealSubject: public Subject
{
public:
    
void Request()
    
{
        cout
<<"Request"<<endl;
    }

}
;

//Proxy类
class ProxySubject: public Subject
{
public:
    
~ProxySubject() {delete p; p = NULL;}

    
//需要时才创建实现类对象
    void Request()
    
{
        
if(NULL == p)
        
{
            p 
= new RealSubject;
        }


        p
->Request();
    }

private:
    RealSubject
* p;
}
;

int main()
{
    Subject
* p = new ProxySubject;
    p
->Request();
    delete p;
    
    
return 0;
}
posted on 2009-06-09 20:43 大胖 阅读(106) 评论(0)  编辑 收藏 引用 所属分类: Design Pattern

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理