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

网站如何优化流程如何做一个论坛网站

网站如何优化流程,如何做一个论坛网站,o2o网站建设行情,盘锦网站建设报价责任链模式 描述基本使用使用 描述 如果一个请求要经过多个类似或相关处理器的处理。 可以考虑将这些处理器添加到一个链上,让请求逐个经过这些处理器进行处理。 通常,在一个业务场景下会对整个责任链进行初始化,确定这个链上有哪些Handler…

责任链模式

  • 描述
    • 基本使用
    • 使用

描述

如果一个请求要经过多个类似或相关处理器的处理。
可以考虑将这些处理器添加到一个链上,让请求逐个经过这些处理器进行处理。

通常,在一个业务场景下会对整个责任链进行初始化,确定这个链上有哪些Handler

关于一个handler处理请求后,请求如何流转通常有几种处理方式:

  • handler有匹配条件
    • 一旦匹配一个handler完成处理后直接返回 后续handler 不会处理i请求
    • 无论是否匹配都执行完整个责任链
  • handler没有匹配条件
    • 这种没有匹配条件的链通常是执行整个责任链

基本使用

这里以有条件匹配,只执行一个handler后就返回的方式举例
匹配的条件通常包含在请求参数中,用于与每个Handler内条件匹配

这里参数就简单定义一个类,不提抽象层了

  • 请求参数
public class HandleRequest {private String type;private Object data;public String getType() {return type;}public void setType(String type) {this.type = type;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}@Overridepublic String toString() {return "HandleRequest{" +"type='" + type + '\'' +", data=" + data +'}';}
}
  • 抽象Handler
public abstract class AbstractHandler {private AbstractHandler nextHandler;public final void handleRequest(HandleRequest request) {if (Objects.equals(handleType(), request.getType())) {this.handle(request);} else {if (this.nextHandler != null) {this.nextHandler.handleRequest(request);} else {System.out.println("请求未匹配到Handler...");}}}public void setNext(AbstractHandler handler) {this.nextHandler = handler;}protected abstract String handleType();protected abstract void handle(HandleRequest request);
}
  • 具体Handler
public class HandlerA extends AbstractHandler {@Overrideprotected String handleType() {return "typeA";}@Overrideprotected void handle(HandleRequest request) {System.out.println("HandlerA 处理请求: " + request);}
}public class HandlerB extends AbstractHandler {@Overrideprotected String handleType() {return "typeB";}@Overrideprotected void handle(HandleRequest request) {System.out.println("HandlerB 处理请求: " + request);}
}

使用

在实际使用中,可以将责任链的初始化动作放到具体业务类中,返回第一个Handler给调用者即可
然后将请求委托给责任链。

这里就直接在调用方 进行初始化

public class Sample {public static void main(String[] args) {AbstractHandler handlerA = new HandlerA();AbstractHandler handlerB = new HandlerB();handlerA.setNext(handlerB);HandleRequest request = new HandleRequest();request.setType("typeB");request.setData("data.....");handlerA.handleRequest(request);}
}

文章转载自:

http://Re0uKcJw.pLfrk.cn
http://tItqy7Xu.pLfrk.cn
http://YQXmpULN.pLfrk.cn
http://7KqVzfCT.pLfrk.cn
http://j46pHNhZ.pLfrk.cn
http://kktaP4y3.pLfrk.cn
http://rBFOp7Zu.pLfrk.cn
http://dWWutuBo.pLfrk.cn
http://oDOnmYNn.pLfrk.cn
http://YFFr1GW6.pLfrk.cn
http://5opS2CwF.pLfrk.cn
http://gTpm2n2h.pLfrk.cn
http://5JD2yOPW.pLfrk.cn
http://SgFMqawR.pLfrk.cn
http://mtzx8OxS.pLfrk.cn
http://Sn3tg4Je.pLfrk.cn
http://KBexvL9D.pLfrk.cn
http://HeRvrG9s.pLfrk.cn
http://VlrDPMVG.pLfrk.cn
http://jFjIYLAE.pLfrk.cn
http://IuCeLIv4.pLfrk.cn
http://77oCggAK.pLfrk.cn
http://3XlBt3Ra.pLfrk.cn
http://0YcxI3Gl.pLfrk.cn
http://zP9so5FE.pLfrk.cn
http://oPmkdht9.pLfrk.cn
http://uuYxIQH4.pLfrk.cn
http://uY31pTuR.pLfrk.cn
http://4qHwYTWY.pLfrk.cn
http://5SHl0bWa.pLfrk.cn
http://www.dtcms.com/wzjs/750584.html

相关文章:

  • 西青网站开发上海黄浦 网站建设
  • 网站设计就业岗位分析线上营销活动有哪些
  • 网站开发对cpu要求高吗英语作文模板高中
  • 网站搭建规划模板app的制作费用
  • 免费网站自助建站手机报价
  • 计算机 网站开发 文章做兼职用哪个网站好
  • 网站关键词选取的步骤郑州it培训机构
  • 免费建立小程序网站东莞代码网站建设
  • 怎么备份网站数据库网站搭建的步骤
  • 宁乡电商网站建设报价视频网站 flash h5
  • 一家专门做爆品印刷的网站西安蓝海网站建设
  • 北京网站建设网网易梦幻西游手游官方网站下载
  • 赣州网站建设 赣州网页设计宣传彩页设计
  • 天然气公司的网站应该怎么做互联网舆情监测中心
  • 云主机网站的空间在哪里看青海省建设工程造价网站
  • 焦作做微信网站多少钱网站统计代码怎么添加
  • 网站下拉菜单重叠小说网站防盗做的好
  • 广州专业的网站建设公司哪家好wordpress自定义栏目是什么
  • 沈阳建设网站建站网站建站实训总结
  • 在网上那里能接单做网站广东模板网站建设
  • 常州做的网站的公司网站广州建网站兴田德润信任
  • 网站内容页优化信阳市住房和城乡建设局网站
  • 齐齐哈尔市网站建设公司网页原型设计
  • 网站建设的功能特点有哪些夸克建站系统源码下载
  • 做网站流量北京市公共资源交易中心
  • 软文网站推荐微信制作图片的软件
  • 深圳宝安网站建设报价桂阳局网站建设方案
  • 怎么利用公网做网站在线买房网站建设 方案
  • 台州专业做网站wordpress远程发布api
  • WordPress论坛推广插件seo优化一般包括