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

东莞在线网站制作平台公司怎么搭建自己网站

东莞在线网站制作平台,公司怎么搭建自己网站,济源做网站怎么收费,重庆市建设工程招标投标交易信息网行为型模式-责任链模式 8.5责任链模式:arrow_up::arrow_up::arrow_up:8.5.1概念8.5.2场景8.5.3优势 / 劣势8.5.4责任链模式可分为8.5.5责任链模式8.5.6实战8.5.6.1题目描述8.5.6.2输入描述8.5.6.3输出描述8.5.6.4代码 8.5.7总结 8.5责任链模式⬆️⬆️⬆️ 8.5.1概念 ​ 责任… 行为型模式-责任链模式 8.5责任链模式:arrow_up::arrow_up::arrow_up:8.5.1概念8.5.2场景8.5.3优势 / 劣势8.5.4责任链模式可分为8.5.5责任链模式8.5.6实战8.5.6.1题目描述8.5.6.2输入描述8.5.6.3输出描述8.5.6.4代码 8.5.7总结 8.5责任链模式⬆️⬆️⬆️ 8.5.1概念 ​ 责任链模式定义了一系列的处理器对象每个处理器对象都包含对链表中下一个处理器对象的引用。在这条请求链条中每当一个请求发生时它就会被传递给链表的下一个处理器对象直到某个处理器对象处理该请求为止。 8.5.2场景 ​ 在我们公司内部审批流程中若某个员工提交了请假申请需要经过上级的一系列的审批过程例如小组长审批、部门经理审批、人事部审批、总经理审批等。这些审批过程可以采用责任链模式来实现将每个审批者看作一个处理器若某个处理者无法处理该申请则将该申请传递给下一个处理者直到有一个处理者同意或拒绝该申请为止。 8.5.3优势 / 劣势 降低耦合度请求发送者和接收者之间不直接交互而是通过责任链上的多个对象进行交互从而降低了它们之间的耦合度增强灵活性可以动态地增加或删除处理器从而改变请求的处理顺序和方式提高可扩展性因为每个处理器都只负责处理自己能够处理的请求所以可以方便地添加新的处理器来处理新的请求类型 请求未处理若没有任何一个处理器能够处理该请求则该请求将被忽略系统性能降低由于责任链中可能包含大量的处理器因此可能会影响系统的性能 8.5.4责任链模式可分为 处理者Handler定义一个处理请求的接口包含一个处理请求的抽象方法和指向下一个处理者的链接具体处理者ConcreteHandler实现处理请求的方法并判断能否处理请求若能够处理请求则进行处理否则将请求传递给下一个处理者客户端创建并组装处理者对象链并将请求发送到链上的第一个处理者 8.5.5责任链模式 package com.technologystatck.designpattern.mode.chainofresponsibility;public class ChainOfResponsibility {public static void main(String[] args) {//创建处理者实例ConcreteHandler handlerA new ConcreteHandler();ConcreteHandler handlerB new ConcreteHandler();//...可以继续创建其他处理者实例//构建责任链handlerA.setNextHandler(handlerB);//...可以继续构建责任链//发送请求Request request new Request(/*请求参数*/);handlerA.handleRequest(request);} }//1.处理者定义处理请求的接口 interface Handler{//处理请求的方法void handleRequest(Request request);//设置下一个处理者的方法void setNextHandler(Handler nextHandler); }//2.具体处理者实现处理请求 class ConcreteHandler implements Handler{private Handler nextHandler;//具体处理者自己的判断条件private boolean canHandle(Request request){//根据具体情况判断是否能够处理请求/*** 放入自己的判断条件*/return true;}Overridepublic void handleRequest(Request request) {//根据具体情况处理请求若无法处理则转发给下一个处理者if(canHandle(request)){//处理请求的逻辑}else if(nextHandler !null){nextHandler.handleRequest(request);}else{//无法处理请求的逻辑如打印日志等等}}Overridepublic void setNextHandler(Handler nextHandler) {this.nextHandlernextHandler;} } 8.5.6实战 8.5.6.1题目描述 小明所在的公司请假需要在OA系统上发布申请整个请求流程包括多个处理者每个处理者负责处理不同范围的请假天数如果一个处理者不能处理请求就会将请求传递给下一个处理者请你实现责任链模式可以根据请求天数找到对应的处理者。 审批责任链由主管(Supervisor), 经理(Manager)和董事Director)组成他们分别能够处理3天、7天和10天的请假天数。如果超过10天则进行否决。 8.5.6.2输入描述 第一行是一个整数N1 N 100), 表示请求申请的数量。 接下来的N行每行包括一个请求申请的信息格式为姓名 请假天数 8.5.6.3输出描述 对于每个请假请求输出一行表示该请求是否被批准。如果被批准/否决输出被哪一个职级的人批准/否决。 8.5.6.4代码 package com.technologystatck.designpattern.mode.chainofresponsibility;import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int numsscanner.nextInt();scanner.nextLine();//组织责任链LeaveHandler director new Director();LeaveHandler manager new Manager(director);LeaveHandler supervisor new Supervisor(manager);for(int i0;inums;i){String[] input scanner.nextLine().split( );if(input.length2){String nameinput[0];int daysInteger.parseInt(input[1]);LeaveRequest request new LeaveRequest(name, days);supervisor.handleRequest(request);}else{System.out.println(Invalid input);return;}}} }//请求类 class LeaveRequest{private String name;private int days;public LeaveRequest(String name, int days) {this.name name;this.days days;}public String getName() {return name;}public int getDays() {return days;} } //处理者定义接口 interface LeaveHandler{void handleRequest(LeaveRequest request); }//具体处理者可以有多个负责具体处理主要分为Supervisor、Manager、Director //主管类 class Supervisor implements LeaveHandler{//最多3天请假审批private static final int MAX_DAYS_SUPERVISOR_CAN_APPROVE3;//设置下一个处理器对象private LeaveHandler nextHandler;public Supervisor(LeaveHandler nextHandler) {this.nextHandler nextHandler;}Overridepublic void handleRequest(LeaveRequest request) {//若请假的天数小于当前处理者所能审批的最大天数则直接审批通过否则继续传递给下一个处理者。if(request.getDays()MAX_DAYS_SUPERVISOR_CAN_APPROVE){System.out.println(request.getName() Approved by Supervisor.);}else if(nextHandler !null){//若下一个处理器不为空就直接传给下一个处理器nextHandler.handleRequest(request);}else{System.out.println(request.getName()Denied by Supervisor.);}} } //经理类 class Manager implements LeaveHandler{//最多7天请假审批private static final int MAX_DAYS_SUPERVISOR_CAN_APPROVE7;//设置下一个处理器对象private LeaveHandler nextHandler;public Manager(LeaveHandler nextHandler) {this.nextHandler nextHandler;}Overridepublic void handleRequest(LeaveRequest request) {if(request.getDays()MAX_DAYS_SUPERVISOR_CAN_APPROVE){System.out.println(request.getName() Approved by Manager.);}else if(nextHandler !null){nextHandler.handleRequest(request);}else{System.out.println(request.getName() Denied by Manager.);}} }//总监类 class Director implements LeaveHandler{private static final int MAX_DAYS_SUPERVISOR_CAN_APPROVE10;Overridepublic void handleRequest(LeaveRequest request) {if(request.getDays()MAX_DAYS_SUPERVISOR_CAN_APPROVE){System.out.println(request.getName() Approved by Director.);}else{System.out.println(request.getName() Denied by Director.);}} } 8.5.7总结 优点每个处理者只负责处理与自己相关的请求客户端不需要具体时哪个处理者处理请求总结类似过滤器中的链式处理一个请求不断地在链式中传入下一个处理者直到有一个处理者能处理该请求场景适用于一个请求会被多个处理者进行处理并且整条责任链模式中会有合适的处理者来处理请求
http://www.tj-hxxt.cn/news/136108.html

相关文章:

  • 有源码如何做网站网站名称注册保护
  • 互联网服务平台登录安阳网站制作优化
  • 中小企业网站建设效果企业网站的主要内容
  • 平面设计网站源码公司网站建设图片素材怎么找
  • 十大家居家装网站哪个好网站建设脑图
  • 怎么咨询网络服务商深圳网站建设制作优化
  • 国内电子商务网站有哪些建设一个网站需要哪些
  • 企业网站主要功能网络推广方法有几种
  • 网站建设制作设计公司公司logo墙设计图片
  • 网站设计的逻辑河北高端网站设计
  • 网站建设网站模版广告网站模板下载 迅雷下载安装
  • 淘宝网站可以做轮播吗个人网站 创意
  • 室内设计网站配色app广州的服装网站建设
  • 杭州企业网站建站模板网站运营单位是什么意思
  • 网站升级停止访问如何做中华会计网校
  • 做自己的网站能赚钱吗网站基础建设英文
  • WordPress多语言多站点详情页设计详细教程
  • 35互联做网站怎么样360广告推广平台
  • 西安商城类网站制作首选大型网站建站公司
  • 可以做笔记的网站网站建设原因
  • 天津建设注册执业中心网站企业宣传片策划团队
  • 网站源码下载 用户注册天津建站服务
  • dw网站模版wordpress如何把文章
  • 北京住房城乡建设厅网站南京网站开发南京乐识赞
  • 网站设计与网页制作岗位招聘信息种植园网站模板
  • 已有的网站如何做排名优化山东网站建设都有那些
  • 建站网站模板做网站用什么面板好
  • 企业官方网站建设推广软件哪个好
  • 小公司网站用什么服务器划算深圳建网站制作维护
  • 建设网站需要什么设备智能网站建设加工