2011年3月7日 星期一 〖农历 辛卯 免年 二月初三〗 晴设计模式之四、代理模式Proxy适用范围:为其它对象提供一种代理以控制对这个类的使用。书中的实例:A要追求C,通过B向C送各种礼物。即A为实体对象,B为代理对象。代理模式的结构图如下所示:关键C++代码1、接口类:ISubject接口类中定义接口,即纯虚函数:virtual void Request() = 0;2、实体类:CRealSubject.cppvoid CRealSubject::Request(){printf("这是实体类对象/n");}3、代理类:CProxySubjectCProxySubject.h//定义实体类对象m_realCRealSubject *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.cppCProxy *proxy = new CProxy();proxy->Request();
//释放内存
if(proxy != NULL)
{
delete proxy;
}
书中的通过代理人向女孩儿送礼物的实例,已经用C++实现了,也比较简单。需要的朋友可以和我联系。等整理好后,我会将所有的代码上传到资源库中,方便初学者使用,也希望大家对我的代码提出富贵的意见。作为编码人员,我经验还很不足,也会经常犯一些比较低级的错误,欢迎大家批评指正。