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++实现了,也比较简单。
需要的朋友可以和我联系。等整理好后,我会将所有的代码上传到CSDN资源库中,方便初学者使用,也希望大家对我的代码提出富贵的意见。
作为编码人员,我经验还很不足,也会经常犯一些比较低级的错误,欢迎大家批评指正。