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

沈阳做招聘网站免费网络营销方式

沈阳做招聘网站,免费网络营销方式,江苏华江建设集团有限公司网站,网站发布到ftp说明:本文介绍设计模式中行为型设计模式中的,责任链模式; 审批流程 责任链模式属于行为型设计模式,关注于对象的行为。责任链模式非常典型的案例,就是审批流程的实现。如一个报销单的审批流程,根据报销单…

说明:本文介绍设计模式中行为型设计模式中的,责任链模式;

审批流程

责任链模式属于行为型设计模式,关注于对象的行为。责任链模式非常典型的案例,就是审批流程的实现。如一个报销单的审批流程,根据报销单金额大小,需要不同的职位领导审批,金额越大,审批人的职务越高,如下:

在这里插入图片描述

代码如下:

(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.hkea.cn/news/149644/

相关文章:

  • 内部网站建设关键词优化推广策略
  • 一个公司可以做几个网站备案贵阳网络推广排名
  • 武汉高端网站建设免费广告网
  • 大理建网站常用于网站推广的营销手段是
  • js怎么做网站跨境电商网站
  • 台州外贸网站建设百度推广费用多少
  • 虚拟机怎么做网站空间培训班管理系统 免费
  • wordpress离线文章发布郑州seo关键词排名优化
  • 龙岗区网站建设中国职业培训在线
  • 南山网站建设外包优化网站
  • 个人怎么做网站推广神起网络游戏推广平台
  • 做网站的关键技术运营推广的方式和渠道有哪些
  • jsp做就业网站网推项目
  • 网站开发的目的和意义重庆seo排名电话
  • 顺义专业建站公司最有效的线上推广方式
  • 大连网站网站搭建制作百度识图 上传图片
  • 给人做网站多少钱黑科技引流推广神器怎么下载
  • 沈阳做网站最好的公司百度快照怎么删除
  • 设置本机外网ip做网站网站免费制作平台
  • 有什么推荐做简历的网站2024的新闻有哪些
  • 申请做网站 论坛版主惠州seo外包服务
  • 网站照片上传不了域名解析ip
  • 胖小七网站建设2022最新国际新闻10条简短
  • wordpress 网站备份厦门seo外包服务
  • 网站建设及推广培训杭州百度快照优化排名
  • 简单手机网站开发软件关键词排名代发
  • visio画网站开发类图注册域名后怎么建网站
  • 道里网站运营培训北京网络营销咨询公司
  • 目前做网站流行的语言seo关键词排名优化哪家好
  • 长沙营销型网站制作费用seo图片优化