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

昆明网站建设电话泰安网页设计公司

昆明网站建设电话,泰安网页设计公司,地方门户网站用户,专业网站建设品牌定义 职责链模式是一种对象行为型模式#xff0c;它常用于处理具有多个处理者的请求。在一个软件系统中#xff0c;当一个请求可以被多个对象处理时#xff0c;这些对象可以组织成一条链#xff0c;并按照这个链传递请求#xff0c;从而实现了请求发送者和请求处理者之间…定义 职责链模式是一种对象行为型模式它常用于处理具有多个处理者的请求。在一个软件系统中当一个请求可以被多个对象处理时这些对象可以组织成一条链并按照这个链传递请求从而实现了请求发送者和请求处理者之间的解耦。 职责链模式的主要角色包括 抽象处理者Handler角色定义一个处理请求的接口包含抽象处理方法和一个后继连接。具体处理者Concrete Handler角色实现抽象处理者的处理方法判断能否处理本次请求如果可以处理请求则处理否则将该请求转给它的后继者。客户类Client角色创建处理链并向链头的具体处理者对象提交请求它不关心处理细节和请求的传递过程。 通过使用职责链模式可以降低对象之间的耦合度使得一个对象无需知道到底是哪一个对象处理其请求以及链的结构发送者和接收者也无须拥有对方的明确信息。同时增强了系统的可扩展性可以根据需要增加新的请求处理类满足开闭原则。此外职责链模式还可以实现责任分担。 实现举例 是的C可以实现职责链模式。以下是一个简单的示例代码 #include iostream #include listclass Handler { public:virtual void handleRequest() 0;virtual Handler* getSuccessor() 0; };class ConcreteHandler1 : public Handler { public:void handleRequest() override {if (requestType request1) {// 处理类型为request1的请求std::cout ConcreteHandler1 handles request1 std::endl;} else {// 将请求传递给下一个处理者if (successor ! nullptr) {successor-handleRequest();} else {std::cout No successor to handle request std::endl;}}}Handler* getSuccessor() override {return successor;}private:std::string requestType; // 请求类型这里只是一个示例具体实现中可能需要更复杂的数据结构或参数来标识请求类型和数据等。Handler* successor; // 下一个处理者的指针默认为nullptr。 };class ConcreteHandler2 : public Handler { public:void handleRequest() override {if (requestType request2) {// 处理类型为request2的请求std::cout ConcreteHandler2 handles request2 std::endl;} else {// 将请求传递给下一个处理者默认为ConcreteHandler1if (successor ! nullptr) {successor-handleRequest();} else {std::cout No successor to handle request std::endl;}}}Handler* getSuccessor() override {return successor;}private:std::string requestType; // 请求类型这里只是一个示例具体实现中可能需要更复杂的数据结构或参数来标识请求类型和数据等。Handler* successor; // 下一个处理者的指针默认为nullptr。 };int main() {ConcreteHandler1 handler1; // 创建处理者对象作为链头的处理者。ConcreteHandler2 handler2; // 创建处理者对象作为链尾的处理者。handler1.successor handler2; // 将handler2设置为handler1的后继者。handler2.successor nullptr; // handler2没有后继者链在此结束。std::listHandler* handlers; // 创建一个处理者链表用于存储处理者对象。handlers.push_back(handler1); // 将handler1添加到链表末尾。return 0; }总结 职责链模式的主要特性包括 请求的发送者和接收者实现了解耦。请求的发送者不需要知道接收者是谁以及如何处理请求而是将请求传递给链上的一个处理者进行处理。增强了系统的灵活性。可以通过添加或修改处理者对象来改变系统的处理结构而不需要修改原有系统。每个处理者可以单纯处理请求或者将请求传递给后继者。每个处理者的行为可以根据需要进行选择。在客户端创建链时只需要知道链头的处理者对象不需要知道链上的其他处理者对象从而简化了对象的连接方式。职责链模式也存在一些问题例如一个请求可能到链的末端都得不到处理或者因为没有正确的配置而得不到处理。因此在设计时需要考虑这些情况。
http://www.pierceye.com/news/878712/

相关文章:

  • 南宁市有哪些做网站的外包企业青州网站建设公司
  • 网站排名点击中国建筑是国企还是央企
  • 广告联盟的网站怎么做太仓苏州网站建设
  • 杭州 seo网站建设 网络服务包头企业网站
  • 网站导航字体企业网站建设及维护
  • 买东西网站产品设计网张
  • 国外有哪些设计网站嵌入式软件开发工具有哪些
  • 做网站推广的销售电话开场白wordpress小工具插件
  • 简单网站建设公司flashfxp上传wordpress
  • 网站建设策划包括哪些内容展馆设计图
  • 网站建设中 翻译六安市 网站集约化建设
  • 全国卫生机构建设管理系统网站公司网站维护费用计哪个科目
  • 学做川菜最好的网站商标综合查询
  • 网站开发培训 价格哪些网站可以找到兼职做报表的
  • 网站建设功能分为几种北京自考网址
  • 购买网站域名怎么做会计分录广告机免费投放
  • 网上做网站赚钱深圳市无限空间工业设计有限公司
  • 商贸网站建设怎么查看wordpress版本
  • 电子商务网站建设哪本教材比较适合中等专业学校用网站建设yankt
  • 局域网网站建设需要什么条件企业建网站的目的
  • 高校专业建设网站桂林漓江竹筏
  • 自已做个网站怎么做网站网络的可用性
  • 深圳网站设计建设永州做网站
  • 怎么制作网站应用wordpress 淘宝客赚钱
  • 网站在政务新媒体建设方案打开手机网站速度慢
  • 网站备案表服务类网站模板
  • 个人网站维护费用淮安注册公司
  • 网站提交做海鱼的网站
  • 建设网站业务竞争大唯一做魅惑的网站
  • 建设学校网站的意义更换wordpress图标