码迷,mamicode.com
首页 > 编程语言 > 详细

c++设计模式---代理模式

时间:2015-04-25 15:15:54      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

#include<iostream>
using namespace std;
//代理模式中注意代理虽然可以实现某个功能,但是代理并不具备该功能,它的实现是通过调用别人的功能
//至于具体哪个功能,多态中基类指针指派生类对象,指向哪个派生类,就去调用哪个派生类的fun函数
class Base
{
public :virtual void fun()=0;
virtual ~Base(){}


};


class Derived:public Base
{
public :void fun()
{cout<<"Derived fun"<<endl;}


};




class proxy:public Base
{
private:Base *pBase;//注意,这里如果写Derived类的对象或指针,当然可以实现,
//但是如果该代理类又要实现别的功能,就又要加该类的对象或指针。
//违背c++设计模式中开闭原则(开放接口,关闭修改)
public:proxy(Base *t){pBase=t;}
void fun()
  {
  pBase->fun();
  }
};


int main (void)
{
Derived *pDerived=new Derived();
proxy *p=new proxy(pDerived);
p->fun();


delete pDerived;
delete p;
}

c++设计模式---代理模式

标签:

原文地址:http://blog.csdn.net/smallsun_229/article/details/45269733

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!