c++设计模式---代理模式
来源:互联网 发布:ajax获取数据 编辑:程序博客网 时间:2024/05/22 03:36
#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;
}
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;
}
1 0
- 设计模式之代理模式(C++)
- 设计模式--【代理模式】
- 设计模式:代理模式
- 设计模式--代理模式
- 设计模式---代理模式
- 设计模式-代理模式
- 设计模式---代理模式
- 设计模式 代理模式
- 设计模式-【代理模式】
- 设计模式-代理模式
- 设计模式----代理模式
- 设计模式-代理模式
- 设计模式---代理模式
- 设计模式--代理模式
- 设计模式-代理模式
- 设计模式- 代理模式
- 设计模式---代理模式
- 设计模式 - 代理模式
- OpenStack源码系列---neutron-server
- 世外桃源:青之岛
- 暑期计划
- 同样是经历过,为什么我们还有差距?
- Leetcode #1 Two Sum
- c++设计模式---代理模式
- 黑马程序员——java基础(多线程)
- ORACLE9i_性能调优基础十(Oracle Blocks Efficiently)
- week9---4月29日
- 电脑开关那几个小插头怎么插
- 最长回文子串
- 成佩涛chengpeitao
- c++设计模式---适配器模式
- select I/O 多路复用实现服务器聊天室功能