首页 > 代码库 > C++ 代理模式
C++ 代理模式
刚刚看到了C++代理模式,简单的学习了一下,当一个应用程序执行时,可以采用这种方法,至于到底怎么用,我还不知道。
A->B->C。
当应用A要执行的时候,采用代理B,B继承自协议C,实现C中的虚方法,C为一个抽象类,包含一个纯虚函数。这样的话,主函数中只需要执行A的方法就可以了。
下面用代码简单演示下上述过程。
协议类Aprotol:
1 #ifndef _APROTOL_H 2 #define _APROTOL_H 3 4 class Aprotol 5 { 6 public: 7 virtual void DoSomething()=0; 8 }; 9 10 #endif
代理类Delegate:
1 #ifndef _DELEGATE_H 2 #define _DELEGATE_H 3 4 #include"Aprotol.h" 5 #include<iostream> 6 using namespace std; 7 8 class Delegate:public Aprotol 9 {10 public:11 void DoSomething();12 };13 14 void Delegate::DoSomething()15 {16 cout<<"程序从这里开始....do something\n";17 }18 #endif
应用类Application:
1 #ifndef _APPLICATION_H 2 #define _APPLICATION_H 3 4 #include"Delegate.h" 5 class Application 6 { 7 public: 8 Delegate * del; 9 void set(Delegate *del)10 {11 this->del=del;12 }13 void run()14 {15 this->del->DoSomething();16 }17 };18 19 #endif
main函数:
1 #include"Application.h" 2 #include"Aprotol.h" 3 #include"Delegate.h" 4 5 int main() 6 { 7 Delegate *a=new Delegate; 8 Application *b=new Application; 9 b->set(a);10 b->run();11 return 0;12 }
这样写话,清晰明了,主函数的程序不需要修改,我们只需要修改协议的方法即可。这里只是解释了一下这种思路,希望以后在实际用到的时候能有新的体会和见解。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。