阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。
采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图18-10所示。
[Java代码]
class PurchaseRequest
public double Amount; //采购的金额
public int Number; //采购单编号
public String Purpose; //采购目的
;
class Approver //审批者类
public Approver()successor=null;
public void ProcessRequest(PurchaseRequest aRequest)
if(successor!=null)(successor. (1) ;
public void SetSuccessor(Approver aSuccesssor)successor=aSuccesssor;
private (2) successor;
;
Class Congress extends Approver
public void ProcessRequest(PurchaseRequest aRequest)
if(aRequest.Amount>=500000)/*决定是否审批的代码省略*/
else (3) .ProcessRequest(aRequest);
;
class Director extends Approver
public void ProcessRequest(PurchaseRequest aRequest)/*此处代码省略*/
;
class President extends Approver
public void ProcessRequest(purchaseRequest aRequest)/*此处代码省略*/
;
class VicePresident extends Approver
public void ProcessRequest(purchaseRequest aRequest)/*此处代码省略*/
;
public class rs
public static void main(String[] args)throws IOException
Congress Meeting=new Congress();
VicePresident Sam=new VicePresident();
Director Larry=new Director();
President Tammy=new President();
//构造责任链
Meeting.SetSuccessor(null);Sam.SetSuccessor( (4) );
Tammy.SetSuccessor( (5) );Larry.SetSuccessor( (6) );
//构造采购审批请求
PurchaseRequest aRequest=new PurchaseRequest();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
aRequest.Amount=Double.parseDouble(br.readLine());
(7) .ProcessRequest(aRequest);//开始审批
return;
(2)处填()。
参考答案:Approver