设计模式之(四、代理模式Proxy)

本文详细介绍了设计模式中的代理模式,通过一个简单的示例说明了代理模式的实现方式,并提供了C++代码实现。文中还包含了接口类、实体类和代理类的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2011年3月7日 星期一 〖农历 辛卯 免年 二月初三〗 晴
设计模式之四、代理模式Proxy
适用范围:
为其它对象提供一种代理以控制对这个类的使用。
书中的实例:
A要追求C,通过B向C送各种礼物。
即A为实体对象,B为代理对象。
代理模式的结构图如下所示:


关键C++代码
1、接口类:ISubject
接口类中定义接口,即纯虚函数:
virtual void Request() = 0;

2、实体类:CRealSubject.cpp
void CRealSubject::Request()
{
printf("这是实体类对象/n");
}

3、代理类:CProxySubject
CProxySubject.h
//定义实体类对象m_real
CRealSubject *m_real;

CProxySubject.cpp

CProxySubject::CProxySubject():m_real(NULL)

{

}

CProxySubject::~CProxySubject()

{

    if(m_real != NULL)

    {

       delete m_real;

       m_real = NULL;

    }

}
void CProxySubject::Request()
{
    if( m_real == NULL)
    {
        m_real = new CRealSubject();
    }
    m_real->Request();
}

4、客户端代码main.cpp
CProxy *proxy = new CProxy();
proxy->Request();

 

//释放内存

if(proxy != NULL)

{

   delete proxy;

}

 



书中的通过代理人向女孩儿送礼物的实例,已经用C++实现了,也比较简单。
需要的朋友可以和我联系。等整理好后,我会将所有的代码上传到优快云资源库中,方便初学者使用,也希望大家对我的代码提出富贵的意见。
作为编码人员,我经验还很不足,也会经常犯一些比较低级的错误,欢迎大家批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值