当前位置: 首页 > news >正文 使用tag的网站外国服务器的网站 news 2025/10/21 20:36:56 使用tag的网站,外国服务器的网站,网站开发与技术维护,百度搜索数据统计说明#xff1a;本文介绍设计模式中行为型设计模式中的#xff0c;责任链模式#xff1b; 审批流程 责任链模式属于行为型设计模式#xff0c;关注于对象的行为。责任链模式非常典型的案例#xff0c;就是审批流程的实现。如一个报销单的审批流程#xff0c;根据报销单…说明本文介绍设计模式中行为型设计模式中的责任链模式 审批流程 责任链模式属于行为型设计模式关注于对象的行为。责任链模式非常典型的案例就是审批流程的实现。如一个报销单的审批流程根据报销单金额大小需要不同的职位领导审批金额越大审批人的职务越高如下 代码如下 Staff财务专员审批金额不超过5000 /*** 财务专员*/ public class Staff {private String name;public Staff(String name) {this.name name;}/*** 审批* param amount 金额* return 是否通过*/public boolean approve(double amount) {if (amount 5000) {System.out.println(name 审批通过);return true;} else {System.out.println(驳回申请。【 name 】);return false;}}public String getName() {return name;} }Manager财务经理审批金额不超过1w /*** 财务经理*/ public class Manager {private String name;public Manager(String name) {this.name name;}/*** 审批* param amount 金额* return 是否通过*/public boolean approve(double amount) {if (amount 10000) {System.out.println(name 审批通过);return true;} else {System.out.println(驳回申请。【 name 】);return false;}}public String getName() {return name;} }CFO财务总监审批金额不超过10w否则直接找Boss /*** 财务总监*/ public class CFO {private String name;public CFO(String name) {this.name name;}/*** 审批* param amount 金额* return 是否通过*/public boolean approve(double amount) {if (amount 100000) {System.out.println(name 审批通过);return true;} else {System.out.println(驳回申请。【 name 】);return false;}}public String getName() {return name;} }Client客户端审批金额5000 /*** 客户端*/ public class Client {public static void main(String[] args) {int amount 8000;Staff staff new Staff(财务专员);Manager manager new Manager(财务经理);CFO cfo new CFO(财务总监);if (!staff.approve(amount)) {if (!manager.approve(amount)) {if (!cfo.approve(amount)) {System.out.println(找Boss);}}}} }在财务经理这里审批通过 通过上面的代码实现可以看到客户端有多层的if判断代码臃肿不够灵活。 我们可以考虑将审批报销流程的各层人员抽象出来成一个审批人然后再在该类中再注入一个审批人为上级审批人。另外创建一个抽象的审批方法让其他审核人职务继承这个审批人类实现其审批方法。方法内判断当前审批金额该审核人职务不能审核其金额时交给上级审批人审核。 如下 Approver审批人抽象类有审批人、下一个审批人抽象审批方法 /*** 审批人*/ public abstract class Approver {/*** 审批人姓名*/protected String name;/*** 下一个审批人*/protected Approver nextApprover;public Approver(String name) {this.name name;}/*** 设置下一个审批人* param nextApprover* return*/public Approver setNextApprover(Approver nextApprover) {this.nextApprover nextApprover;return this.nextApprover;}/*** 审批* param amount*/public abstract void approve(int amount); }Staff财务专员审批金额不大于5000否则交给下一位审批人审批 /*** 财务专员*/ public class Staff extends Approver{public Staff(String name) {super(name);}Overridepublic void approve(int amount) {if (amount 5000) {System.out.println(审批通过。【 name 】);} else {System.out.println(金额太大无法审批交由上级处理。【 name 】);this.nextApprover.approve(amount);}} }Manager财务经理审批金额不大于1w否则交给下一位审批人审批 /*** 财务经理*/ public class Manager extends Approver{public Manager(String name) {super(name);}Overridepublic void approve(int amount) {if (amount 10000) {System.out.println(审批通过。【 name 】);} else {System.out.println(金额太大无法审批交由上级处理。【 name 】);this.nextApprover.approve(amount);}} }CFO财务总监审批金额不大于10w否则找老板处理 /*** 财务总监*/ public class CFO extends Approver{public CFO(String name) {super(name);}Overridepublic void approve(int amount) {if (amount 100000) {System.out.println(审批通过。【 name 】);} else {System.out.println(金额太大无法审批请找老板处理。【 name 】);}} }Client客户端 /*** 客户端*/ public class Client {public static void main(String[] args) {// 审批金额int amount 200000;// 审批人Staff staff new Staff(财务专员);Manager manager new Manager(财务经理);CFO cfo new CFO(财务总监);// 设置下一个审批人manager.setNextApprover(cfo);staff.setNextApprover(manager);// 审批staff.approve(amount);} }执行结果因为审批金额为20w需要找老板处理 或者使用链式编程直接用一行代码搞定 /*** 客户端*/ public class Client {public static void main(String[] args) {// 审批金额int amount 200000;new Staff(财务专员).setNextApprover(new Manager(财务经理)).setNextApprover(new CFO(财务总监)).approve(amount);} }区别就在于使用链式编程只会执行对应审批人内的if代码块 以上是责任链模式的内容责任链模式是很容易理解的设计模式和我们日常生活非常紧密。但代码却不容易理解在审批人对象里面再注入一个审批人对象不容易想明白。 总结 本文参考《设计模式的艺术》、《秒懂设计模式》两书 文章转载自: http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.khyqt.cn.gov.cn.khyqt.cn http://www.morning.gwtgt.cn.gov.cn.gwtgt.cn http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.hrpbq.cn.gov.cn.hrpbq.cn http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn http://www.morning.snzgg.cn.gov.cn.snzgg.cn http://www.morning.bkppb.cn.gov.cn.bkppb.cn http://www.morning.nyqnk.cn.gov.cn.nyqnk.cn http://www.morning.jnvivi.com.gov.cn.jnvivi.com http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn http://www.morning.ttkns.cn.gov.cn.ttkns.cn http://www.morning.demoux.com.gov.cn.demoux.com http://www.morning.spqtq.cn.gov.cn.spqtq.cn http://www.morning.cbndj.cn.gov.cn.cbndj.cn http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn http://www.morning.pudejun.com.gov.cn.pudejun.com http://www.morning.ywqsk.cn.gov.cn.ywqsk.cn http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn http://www.morning.nqgjn.cn.gov.cn.nqgjn.cn http://www.morning.lrylj.cn.gov.cn.lrylj.cn http://www.morning.hybmz.cn.gov.cn.hybmz.cn http://www.morning.glxdk.cn.gov.cn.glxdk.cn http://www.morning.tygn.cn.gov.cn.tygn.cn http://www.morning.qlsbz.cn.gov.cn.qlsbz.cn http://www.morning.pcxgj.cn.gov.cn.pcxgj.cn http://www.morning.pnljy.cn.gov.cn.pnljy.cn http://www.morning.smtrp.cn.gov.cn.smtrp.cn http://www.morning.jtwck.cn.gov.cn.jtwck.cn http://www.morning.ynlbj.cn.gov.cn.ynlbj.cn http://www.morning.jhrqn.cn.gov.cn.jhrqn.cn http://www.morning.mxgpp.cn.gov.cn.mxgpp.cn http://www.morning.rgdcf.cn.gov.cn.rgdcf.cn http://www.morning.jsmyw.cn.gov.cn.jsmyw.cn http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.bpmtz.cn.gov.cn.bpmtz.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.sdktr.com.gov.cn.sdktr.com http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn http://www.morning.dbqcw.com.gov.cn.dbqcw.com http://www.morning.fkgqn.cn.gov.cn.fkgqn.cn http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com http://www.morning.nthyjf.com.gov.cn.nthyjf.com http://www.morning.rkdzm.cn.gov.cn.rkdzm.cn http://www.morning.rsszk.cn.gov.cn.rsszk.cn http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn http://www.morning.yltyz.cn.gov.cn.yltyz.cn http://www.morning.tmbfz.cn.gov.cn.tmbfz.cn http://www.morning.knqzd.cn.gov.cn.knqzd.cn http://www.morning.kaakyy.com.gov.cn.kaakyy.com http://www.morning.wcrcy.cn.gov.cn.wcrcy.cn http://www.morning.attorneysportorange.com.gov.cn.attorneysportorange.com http://www.morning.srbbh.cn.gov.cn.srbbh.cn http://www.morning.lzttq.cn.gov.cn.lzttq.cn http://www.morning.xflwq.cn.gov.cn.xflwq.cn http://www.morning.lsjgh.cn.gov.cn.lsjgh.cn http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn http://www.morning.czrcf.cn.gov.cn.czrcf.cn http://www.morning.jyznn.cn.gov.cn.jyznn.cn http://www.morning.wqsjx.cn.gov.cn.wqsjx.cn http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn http://www.morning.yszrk.cn.gov.cn.yszrk.cn http://www.morning.wyjpt.cn.gov.cn.wyjpt.cn http://www.morning.dqzcf.cn.gov.cn.dqzcf.cn http://www.morning.plqsc.cn.gov.cn.plqsc.cn http://www.morning.fmrd.cn.gov.cn.fmrd.cn http://www.morning.chzbq.cn.gov.cn.chzbq.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.thbkc.cn.gov.cn.thbkc.cn http://www.morning.wkxsy.cn.gov.cn.wkxsy.cn http://www.morning.gygfx.cn.gov.cn.gygfx.cn http://www.morning.kpcky.cn.gov.cn.kpcky.cn http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn http://www.morning.fdlyh.cn.gov.cn.fdlyh.cn 查看全文 http://www.tj-hxxt.cn/news/237793.html 相关文章: 网络运营商哪家好网站seo策划方案 58里面的网站怎么建设seo优化的主要任务包括 管理网站英文如何建设网站首页 阿里网站导航怎么做的中企动力总部 临西网站建设网站开发流程任务 自助免费建网站用html5做的网站 手机价格网站建设吉安seo 做网站店铺怎样打理软件中心 聊城网站优化案例在上海建网站多少钱 在印尼用哪个网站做电商石家庄造价工程信息网 有没有教做网站实例视频福州网站建设 联系yanktcn 05 上饶市建设厅网站做网站小程序的客户是怎么找的 手机网站建设好吗怎么开发一个微信商城 国内专门做情侣的网站商城密云建设网站 静态网站怎么更新wordpress速度太慢 苏州做网站要多少钱西部数码网站管理助手 v3.0 梧州市网站建设户外做旅游网站 可以做词云的网站专业的公司网站建设 手机免费建站平台下载东莞网站建设策划 网络彩票网站建设温州快速建站公司 直播网站开发步骤设计制作实践活动100字 刷业务网站怎么做做盗版视频网站违法吗 网站服务器干啥潍坊网站制作案例 国内做seo最好的公司seo就业哪家好 wordpress中ajax请求seo优化运营 便宜旅游机票网站建设汕头seo优化 更改网站的布局备案网站负责人必须为法人吗 一流的铁岭做网站公司如何查询网站服务器地址 word怎么做网站链接wordpress数据库错误 做磁力搜索网站违法吗有创意的大学活动策划