Approver.java 责任者的抽象类 用来定义传递方法
package com.godv.responsibility;
//链式结构的抽象类
public abstract class Approver {
Approver approver; // 下一个处理者
String name; // 名字
public Approver(String name) {
// TODO Auto-generated constructor stub
this.name = name;
}
// 下一个处理者
public void setApprover(Approver approver) {
this.approver = approver;
}
// 处理审批请求的方法,得到一个请求, 处理是子类完成,因此该方法做成抽象
public abstract void processRequest(int price);
}
OneApprover.java /ThreeApprover.java / TwoApprover.java
package com.godv.responsibility;
public class OneApprover extends Approver {
public OneApprover(String name) {
// TODO Auto-generated constructor stub
super(name);
}
@Override
public void processRequest(int price) {
// TODO Auto-generated method stub
if (price < 5000) {
System.out.println(this.name + " 处理");
} else {
approver.processRequest(price);
}
}
}
Client.java
package com.godv.responsibility;
public class Client {
public static void main(String[] args) {
// TODO Auto-generated method stub
OneApprover oneApprover = new OneApprover("1");
TwoApprover twoApprover = new TwoApprover("2");
ThreeApprover threeApprover = new ThreeApprover("3");
oneApprover.setApprover(twoApprover);
twoApprover.setApprover(threeApprover);
oneApprover.processRequest(6000);
}
}
本文介绍了一个Java责任链模式的实现,通过Approver抽象类和OneApprover、TwoApprover、ThreeApprover三个子类,展示了如何进行审批请求的逐级处理。关键部分包括抽象方法processRequest的定义和链式调用。
863

被折叠的 条评论
为什么被折叠?



