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

邵阳经开区网站seo职位描述

邵阳经开区网站,seo职位描述,开发网站教程,宣传 网站建设方案模板允许多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个处理器处理该请求为止。 责任链模式是一种处理请求的模式。它让多个处理器都有机会处理请求,直…

允许多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个处理器处理该请求为止。

责任链模式是一种处理请求的模式。它让多个处理器都有机会处理请求,直到其中某个处理成功为止。责任链模式把多个请求连成一条链,让请求在这条链上传递。

在实际场景中,财务审批就是一个责任链模式。

我们来看看如何实现责任链模式。

我们创建抽象类Approver ,然后创建4种不同级别的审核者,都扩展了Approver 。每个审核者都会比较自己的审核额度,如果有权限审核就直接审核通过,否则,将不审核,直接把请求传递给下一个审核者。

创建抽象审批者。

// 抽象审批者
public abstract class Approver {protected Approver nextApprover;protected String name;public Approver(String name) {this.name = name;}public void setNextApprover(Approver nextApprover) {this.nextApprover = nextApprover;}public abstract void processRequest(PurchaseRequest request);
}

创建扩展了该抽象审批者的具体类。

// 部门经理 - 可以审批不超过5000元的采购
public class DepartmentManager extends Approver {public DepartmentManager(String name) {super(name);}@Overridepublic void processRequest(PurchaseRequest request) {if (request.getAmount() <= 5000) {System.out.printf("部门经理 %s 审批了采购单: %s, 金额: %.2f元\n", name, request.getPurpose(), request.getAmount());} else if (nextApprover != null) {nextApprover.processRequest(request);}}
}
// 总监 - 可以审批不超过20000元的采购
public class Director extends Approver {public Director(String name) {super(name);}@Overridepublic void processRequest(PurchaseRequest request) {if (request.getAmount() <= 20000) {System.out.printf("总监 %s 审批了采购单: %s, 金额: %.2f元\n", name, request.getPurpose(), request.getAmount());} else if (nextApprover != null) {nextApprover.processRequest(request);}}
}
// 副总裁 - 可以审批不超过100000元的采购
public class VicePresident extends Approver {public VicePresident(String name) {super(name);}@Overridepublic void processRequest(PurchaseRequest request) {if (request.getAmount() <= 100000) {System.out.printf("副总裁 %s 审批了采购单: %s, 金额: %.2f元\n", name, request.getPurpose(), request.getAmount());} else if (nextApprover != null) {nextApprover.processRequest(request);}}
}
// 总裁 - 可以审批任何金额的采购
public class President extends Approver {public President(String name) {super(name);}@Overridepublic void processRequest(PurchaseRequest request) {System.out.printf("总裁 %s 审批了采购单: %s, 金额: %.2f元\n", name, request.getPurpose(), request.getAmount());}
}

采购请求类。

// 采购请求
public class PurchaseRequest {private double amount;  // 采购金额private String purpose; // 采购目的public PurchaseRequest(double amount, String purpose) {this.amount = amount;this.purpose = purpose;}public double getAmount() {return amount;}public String getPurpose() {return purpose;}
}

测试示例。

public class PurchaseApprovalDemo {public static void main(String[] args) {// 创建审批人Approver manager = new DepartmentManager("张经理");Approver director = new Director("李总监");Approver vp = new VicePresident("王副总裁");Approver president = new President("赵总裁");// 设置责任链manager.setNextApprover(director);director.setNextApprover(vp);vp.setNextApprover(president);// 创建采购请求PurchaseRequest request1 = new PurchaseRequest(4500, "购买办公用品");PurchaseRequest request2 = new PurchaseRequest(12000, "团队建设活动");PurchaseRequest request3 = new PurchaseRequest(50000, "服务器设备升级");PurchaseRequest request4 = new PurchaseRequest(150000, "新办公室装修");// 处理采购请求System.out.println("===== 采购审批流程开始 =====");manager.processRequest(request1);manager.processRequest(request2);manager.processRequest(request3);manager.processRequest(request4);System.out.println("===== 采购审批流程结束 =====");}
}

这种模式在实际业务中非常常见,如工作流审批、客户服务请求处理、异常处理流程等。

总结

责任链模式是一种把一个或多个处理器组合在一起,依次处理请求的模式。

责任链模式的优势是添加新的处理器或调整处理器顺序非常容易。

http://www.dtcms.com/wzjs/246556.html

相关文章:

  • 做网站为什么要用php产品软文范例800字
  • 自助网站建设系统软件竞价推广sem
  • 可以做没有水印的视频网站线上推广引流渠道
  • wordpress做分类网站百度推广seo优化
  • 本地创建wordpressseo网站推广价格
  • 免费搭建网站模板seo快速排名软件app
  • 政府网站建设是佛山优化网站关键词
  • 哈尔滨企业网站建设报价seo整站怎么优化
  • 网站抓取qq号码原理百度一下你就知道移动首页
  • 做窗帘店的网站网站名查询网址
  • 温州微网站制作多少钱百度写作助手
  • 做赌博网站庄家网络营销网
  • 做网站公司赚钱吗seo内容优化心得
  • 网站开发中为什么有两个控制层搜索引擎快速排名推广
  • 国产99做视频网站营销策略理论
  • 珠海网站制作公友妙招链接怎么弄
  • java可以做微信网站么磁力宝最佳搜索引擎入口
  • 电子商务网站管理百度云官网登录入口
  • wordpress阅读次数自动增长平台关键词排名优化
  • wordpress轮播全屏小红书关键词优化
  • 青岛公司网站建设公司百度人工客服电话是多少
  • 如题,HTML如何将两张图片_一张放在网站顶部做背景,另一张放在尾部做背景?seo软件哪个好
  • 朝阳区网站建设网络营销毕业论文范文
  • 专题网站建设策划数据分析师
  • 网站建设误区图长沙谷歌优化
  • 网站开发 团队协作网络推广营销技巧
  • wordpress商店如何添加商品东莞百度快速优化排名
  • 长春建站网站模板网络营销软文
  • 做网站要注意些什么要求seo排名外包
  • 网站建设首页该放什么seo优化标题