当前位置: 首页 > news >正文

能打开各种网站的浏览器和平手机网站建设

能打开各种网站的浏览器,和平手机网站建设,互联网舆情研究中心,个人网站建设与管理工作总结一、问题背景 在 VC/MFC 开发中#xff0c;消息处理机制是核心部分之一。VC 是基于消息和事件驱动的框架#xff0c;消息的处理流程通常是通过链式传递的方式进行的。例如#xff0c;一个 WM_COMMAND 消息的处理流程可能如下#xff1a; #xff08;1#xff09;MDI 主窗…一、问题背景 在 VC/MFC 开发中消息处理机制是核心部分之一。VC 是基于消息和事件驱动的框架消息的处理流程通常是通过链式传递的方式进行的。例如一个 WM_COMMAND 消息的处理流程可能如下 1MDI 主窗口CMDIFrameWnd  收到命令消息 WM_COMMAND其 ID 为 ID_×××。 2MDI 主窗口  将消息传递给当前活动的 **MDI 子窗口CMDIChildWnd**。 3MDI 子窗口  将消息交给其子窗口 **View** 处理。 4View  检查自己的消息映射表Message Map。 5如果  View  没有处理该消息的程序则将消息传递给其对应的 **Document** 对象。 6Document  检查自己的消息映射表如果没有处理程序则将消息传递给其 **DocumentTemplate** 处理。 7如果消息在 **Document** 中仍未得到处理则消息返回给 **View**。 8View  将消息传回给 **MDI 子窗口**。 9MDI 子窗口** 将消息传递给 **CWinApp** 对象**CWinApp** 为所有无主的消息提供了默认处理。 这种链式处理策略使得消息的发送者无需知道消息最终由哪个对象处理只需将消息传递给链中的第一个对象即可。这种设计模式正是 **Chain of Responsibility责任链模式** 的典型应用。 二、模式选择 Chain of Responsibility 模式的核心思想是将多个处理对象连接成一条链请求沿着链传递直到某个对象处理它为止。这种模式的主要优点在于 1降低耦合性请求的发送者无需知道具体的处理者只需将请求传递给链中的第一个对象。 2动态处理可以在运行时动态地调整链中的处理对象。 3灵活性可以灵活地增加或删除处理对象。 Chain of Responsibility 模式的典型结构图如下 在 Chain of Responsibility 模式中每个 ConcreteHandler 对象都维护一个指向其后继者的引用。当一个请求到来时ConcreteHandler 会先检查自己是否能处理该请求。如果不能则将请求传递给后继者。 三、代码实现 下面我们将通过一个完整的 C 代码示例来展示如何实现 Chain of Responsibility 模式。 代码片段 1Handle.h // Handle.h #ifndef _HANDLE_H_ #define _HANDLE_H_class Handle { public:virtual ~Handle();virtual void HandleRequest() 0; // 处理请求的接口void SetSuccessor(Handle* succ); // 设置后继者Handle* GetSuccessor(); // 获取后继者protected:Handle();Handle(Handle* succ);private:Handle* _succ; // 后继者对象 };// ConcreteHandleA 类 class ConcreteHandleA : public Handle { public:ConcreteHandleA();~ConcreteHandleA();ConcreteHandleA(Handle* succ);void HandleRequest(); // 处理请求的具体实现protected: private: };// ConcreteHandleB 类 class ConcreteHandleB : public Handle { public:ConcreteHandleB();~ConcreteHandleB();ConcreteHandleB(Handle* succ);void HandleRequest(); // 处理请求的具体实现protected: private: };#endif //~_HANDLE_H_ 代码片段 2Handle.cpp // Handle.cpp #include Handle.h #include iostream using namespace std;// Handle 类的实现 Handle::Handle() {_succ nullptr; // 初始化后继者为空 }Handle::~Handle() {delete _succ; // 释放后继者对象 }Handle::Handle(Handle* succ) {_succ succ; // 设置后继者 }void Handle::SetSuccessor(Handle* succ) {_succ succ; // 设置后继者 }Handle* Handle::GetSuccessor() {return _succ; // 获取后继者 }void Handle::HandleRequest() {// 默认实现为空 }// ConcreteHandleA 类的实现 ConcreteHandleA::ConcreteHandleA() {// 构造函数 }ConcreteHandleA::~ConcreteHandleA() {// 析构函数 }ConcreteHandleA::ConcreteHandleA(Handle* succ) : Handle(succ) {// 构造函数 }void ConcreteHandleA::HandleRequest() {if (this-GetSuccessor() ! nullptr) {cout ConcreteHandleA 我把处理权给后继节点..... endl;this-GetSuccessor()-HandleRequest(); // 将请求传递给后继者} else {cout ConcreteHandleA 没有后继了我必须自己处理.... endl;} }// ConcreteHandleB 类的实现 ConcreteHandleB::ConcreteHandleB() {// 构造函数 }ConcreteHandleB::~ConcreteHandleB() {// 析构函数 }ConcreteHandleB::ConcreteHandleB(Handle* succ) : Handle(succ) {// 构造函数 }void ConcreteHandleB::HandleRequest() {if (this-GetSuccessor() ! nullptr) {cout ConcreteHandleB 我把处理权给后继节点..... endl;this-GetSuccessor()-HandleRequest(); // 将请求传递给后继者} else {cout ConcreteHandleB 没有后继了我必须自己处理.... endl;} } 代码片段 3main.cpp // main.cpp #include Handle.h #include iostream using namespace std;int main(int argc, char* argv[]) {// 创建责任链中的处理对象Handle* h1 new ConcreteHandleA();Handle* h2 new ConcreteHandleB();// 设置责任链的顺序h1-SetSuccessor(h2);// 处理请求h1-HandleRequest();// 释放内存delete h1;delete h2;return 0; } 代码说明 1Handle 类Handle 是抽象基类定义了处理请求的接口 HandleRequest并提供了设置和获取后继者的方法。 2ConcreteHandleA 和 ConcreteHandleB这两个类是具体的处理者实现了 HandleRequest 方法。如果它们无法处理请求则将请求传递给后继者。 3责任链的构建在 main.cpp 中我们创建了两个处理对象 h1 和 h2并通过 SetSuccessor 方法将它们连接成一条链。当请求到来时h1 会先尝试处理请求如果无法处理则将请求传递给 h2。 运行结果 程序的输出如下 ConcreteHandleA 我把处理权给后继节点..... ConcreteHandleB 没有后继了我必须自己处理.... 四、总结讨论 Chain of Responsibility 模式的最大优点在于它降低了系统的耦合性。请求的发送者无需知道具体的处理者只需将请求传递给责任链中的第一个对象即可。这种设计模式非常适合以下场景 1多级处理当请求需要经过多个对象处理时可以使用责任链模式。 2动态处理可以在运行时动态地调整责任链中的处理对象。 3解耦请求的发送者和处理者之间完全解耦系统更加灵活。 Chain of Responsibility 模式通过将多个处理对象连接成一条链使得请求可以沿着链传递直到某个对象处理它为止。这种模式不仅降低了系统的耦合性还提高了系统的灵活性和可扩展性。在实际开发中责任链模式可以广泛应用于消息处理、事件处理等场景。
http://www.hkea.cn/news/14267253/

相关文章:

  • 网站专题设计网站开发 百度编辑器
  • dedecms 网站名称标签建e网室内设计网现代轻奢
  • 哈尔滨有多少家网站建设公司会员管理系统下载
  • 网站强制使用极速模式如何推广公司网站
  • 织梦网站首页怎么修改免费ppt模板下载熊猫办公
  • 制作音乐的软件免费云南网站seo外包
  • 网站集约化建设存在的困难哈尔滨网站备案
  • 做个外贸网站设计佛山市网站建设系统
  • 品牌网站建设案例威海做网站公司哪家好
  • 找图片素材的网站有哪些中国建设工程造价管理协会网站查询
  • 网站建设管理制度网站开发是用什么语言
  • 长春市住房和城乡建设厅网站中国最新军事新闻最新消息视频
  • 临海网站开发公司物流企业网站建设
  • 微信购物网站开发一级做爰片a视频网站4
  • 好学校平台网站模板高级搜索指令
  • 南通网站建设案例优化方案英语必修三
  • 网站更换服务器需要重新备案吗手机网站需要多少钱
  • 孝感建设网站郑州网球公开赛
  • 儿童玩具网站模板充电宝seo关键词优化
  • 广西建设厅网站深圳网站建设深正互联
  • 邯郸市网站建设多少钱做网站大概要花多少钱
  • 营销网站建设哪里便宜北京朝阳区
  • 浙江省建设工程检测协会网站个人网站名称举例
  • 怎么做网站布局网站建设中页面模板下载
  • 做一款什么网站赚钱电商怎么做的步骤
  • 东莞凤岗企业网站建设推广网站流量分析网站
  • 天津百度网站快速排名中国五大门户网站
  • 大连网站建设报价关于网站建设的教材
  • 沈阳哪家做网站好做网站水晶头
  • 易讯企业建站系统做网站所需要的公司细责及条款