封装消息处理
来源:互联网 发布:js字符串换行处理 编辑:程序博客网 时间:2024/05/21 10:58
一个消息可能会进行多种处理,把各种handle抽象出来,在我们需要某种handle的时候,将其加入到handle group进行集中处理
#include <iostream>#include <string>#include <vector>#include <boost/shared_ptr.hpp>typedef std::string Message;class MessageHandle{public:virtual void handle(Message& msg) = 0;virtual ~MessageHandle() { }};class Encrypt : public MessageHandle{public:virtual void handle(Message& msg){std::cout << "encrypt:" << msg << std::endl;}};class Decrypt : public MessageHandle{public:virtual void handle(Message& msg){std::cout << "decrypt:" << msg << std::endl;}};class Compress : public MessageHandle{public:virtual void handle(Message& msg){std::cout << "compress:" << msg << std::endl;}};class Decompress : public MessageHandle{public:virtual void handle(Message& msg){std::cout << "decompress:" << msg << std::endl;}};typedef boost::shared_ptr<MessageHandle> MessageHandlePtr;class MessageHandleGroup{public:void add(MessageHandlePtr messageHandlePtr){messageHandlePtrGroup_.push_back(messageHandlePtr);}void execute(Message &msg){std::vector<MessageHandlePtr>::iterator iter = messageHandlePtrGroup_.begin();for (; iter!=messageHandlePtrGroup_.end(); ++iter){(*iter)->handle(msg);}}private:std::vector<MessageHandlePtr> messageHandlePtrGroup_;};int main(void){Message msg("hello, world!");MessageHandleGroup messageHandleGroup;messageHandleGroup.add(MessageHandlePtr(new Encrypt()));messageHandleGroup.add(MessageHandlePtr(new Decrypt()));messageHandleGroup.add(MessageHandlePtr(new Compress()));messageHandleGroup.add(MessageHandlePtr(new Decompress()));messageHandleGroup.execute(msg);system("pause");}
- 封装消息处理
- MFC对消息处理的封装
- MFC对消息处理的封装
- Fix协议封装挑战-消息处理
- 由VCL中的代码理解VCL中的消息处理机制(Delphi对消息机的封装)
- 由VCL中的代码理解VCL中的消息处理机制(Delphi对消息机的封装)
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 十四:微信公众帐号-消息及消息处理工具的封装
- 微信公众帐号开发教程第4篇-消息及消息处理工具的封装
- 黑马程序员——HashMap综合练习
- Myeclipse转eclipse
- asterisk的NAT配置
- WGL函数翻译
- java study 03day--函数及数组
- 封装消息处理
- marvell mmp3 pxa2128 sd8787 bluetooth code analysis
- 一生何求
- oracle 用rownum方法查询最近更新的n条数据
- web学习—css样式表—应用(一)
- 播放过程中操作学习
- 如何解决放到android /system/app 下的应用程序无限重启弹出“异常终止”的问题
- hdu 3275 Light 很好很好的线段树 收获丰富
- 我指间的刺青是对你的誓言