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

国外著名网站建设公司天猫店铺入驻流程

国外著名网站建设公司,天猫店铺入驻流程,镇江市精神文明建设网站,朝阳专业网站建设公司说明#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.dnsts.com.cn/news/245392.html

相关文章:

  • 网站维护主要需要会什么抖音广告投放平台
  • 平台网站很难做云存储能用来做网站吗
  • 怎么做微信辅助的网站嘉兴南湖区优秀营销型网站建设
  • 网站调研表营销型网站建设是什么
  • 做网站的什么公司最好设计网站什么叫空间不稳定
  • 深圳个人网站设计中国电商排名前十名
  • 江门网页设计培训价格商城网站的seo优化改怎么做
  • 域名注册空间网站网站页面效果图怎么做
  • 大兴做网站公司安康建设网站
  • 网站 多国语言网站如何从后台进入
  • 做网站设计的有些什么职位wordpress数据库详解
  • 网站建设落地页源码延安网站建设公司
  • asp婚纱摄影网站源码wordpress图片不加载插件下载地址
  • 网站建设树状图在云服务器打建网站
  • 隧道建设网站怎么了甘肃兴城建设有限公司网站
  • 创建一个网站需要怎么做免费合同模板网站
  • 十堰h5网站建设阿里指数
  • dede自适应网站模板全国十大装修公司排行榜
  • 城乡建设查询网站酒泉网站建设公司
  • 华龙seo排名优化培训长沙正规seo优化价格
  • 网站建设欲网站维护wordpress更改ip地址后图片处理
  • 建设一个个人网站不需要海口网站排名
  • 兰州做网站 咨询兰州做网站公司旅游网站建设的结论
  • 南宁企业建站模板积分购物型网站
  • 广州做网站一般多少钱营销推广方法
  • 酒店都不建网站吗百度找不到我的网站了
  • 网站开发属于哪个部门简单的网页代码
  • 重庆网站搭建方案青岛网站建设搜q.479185700
  • 一个seo良好的网站其主要流量往往来自处理事件seo软件
  • 郑州集团网站建设哪家好vc域名建站的网站