企业采购分级审批:采购量的不同需要不同层次的主管人员审批。如主任可以审批10万元以下的采购单,副董事长可以审批25万元以下的采购单,董事长可以审批100万元以下的采购单,100万元以上的开会决定。使用责任链模式设计,在客户端随机生成一张采购单,并完成审批。
UML类图: Java程序代码:主管人员类
package com.responsibility;
public abstract class Manager {
private Manager next;
public Manager getNext() {
return next;
}
public void setNext(Manager next) {
this.next = next;
}
public abstract void handle(int num);
}
主任类
package com.responsibility;
public class Header extends Manager{
@Override
public void handle(int num) {
if(num<=10) {
System.out.println("主任审批"+num+"万元的采购单");
} else {
if(getNext()!=null) {
getNext().handle(num);
} else {
System.out.println("开会决定采购单的审批");
}
}
}
}
副董事长类
package com.responsibility;
public class VicePresident extends Manager{
@Override
public void handle(int num) {
if(num<=25) {
System.out.println("副董事长审批"+num+"万元的采购单");
} else {
if(getNext()!=null) {
getNext().handle(num);
} else {
System.out.println("开会决定采购单的审批");
}
}
}
}
董事长类
package com.responsibility;
public class President extends Manager{
@Override
public void handle(int num) {
if(num<=100) {
System.out.println("董事长审批"+num+"万元的采购单");
} else {
if(getNext()!=null) {
getNext().handle(num);
} else {
System.out.println("开会决定采购单的审批");
}
}
}
}
客户端
package com.responsibility;
public class Client {
public static void main(String[] args) {
Manager m1 = new Header();
Manager m2 = new VicePresident();
Manager m3 = new President();
m1.setNext(m2);
m2.setNext(m3);
m1.handle(60);
}
}
运行结果:



