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);
}
}