一.引言
C++中的代理模式(Proxy)也被称为是委托模式,主要是为其他对象提供一种代理以控制对这个对象的访问。这样做一方面实现了业务和核心功能的分离,同时也对对象的扩展提供了方便。
二.具体代码实例
“父爱如山,母爱似水”,想小时候只要我们想吃什么好吃的,给爸爸妈妈说一声,他们就会为我们买来一大堆好吃的,假设现在我们想吃苹果,但是我们懒啊,所以委托爸爸去给我们买苹果,爸爸作为我们的委托人,要去完成买苹果这件事,于是我们可以这样设计我们的类对象:
#include <iostream>
#include <stdlib.h>
using namespace std;
class Person
{
public:
Person(){}
virtual ~Person(){}
virtual void eatApple() = 0;
};
class BaoBao:public Person
{
public:
BaoBao() {}
~BaoBao(){}
virtual void eatApple()
{
std::cout << "Baobao is eating Apple" << std::endl;
}
private:
};
class Father:public Person
{
public:
Father(Person* person) :m_person(person){}
~Father(){}
void eatApple()
{
m_person->eatApple();
std::cout << "亲爸爸一口" << std::endl;
}
private:
Person* m_person;
};
int _tmain(int argc, _TCHAR* argv[])
{
Person* baobao = new BaoBao();
Father* baba = new Father(baobao);
baba->eatApple();
return 0;
}
输出结果如下:
三.总结:
代理模式提高了程序的扩展性,但同时也增加了设计的复杂性。