阅读下列说明和java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。
【java代码】
classinvoice{
publicvoidprintInvoice(){
System.out.println("Thisisthecontentoftheinvoice!");
}
}
classDecoratorextendsInvoice{
protectedInvoiceticket;
publicDecorator(lnvoicet){
ticket=t;
}
public
voidprintInvoice(){
if(ticket!=null)
(1);
}
}
classHeadDecoratorextendsDecorator{
publicHeadDecorator(lnvoicet){
super(t);
}
publicvoidprintInvoice(){
Systent.out.println("Thisistheheaderoftheinvoice!");
(2);
}
}
classFootDecoratorextendsDecorator{
publicFootDecorator(Invoicet){
super(t);
}
publicvoidprintlnvoice(){
(3);
Systent.out.println("Thisisthefootnoteoftheinvoice!");
}
}
Classtest{
publicstaticvoidmain(String[]args){
Invoicet=newInvioce();
Invoiceticket;
ticket=(4);
ticket.printInvoice();
Systent.out.println(“------------------“);
ticket=(5);
ticket.printInvoice();
}
}
程序的输出结果为:
Thisistheheaderoftheinvoice!
Thisisthecontentoftheinvoice!
Thisisthefootnoteoftheinvoice!
----------------------------
Thisistheheaderoftheinvoice!
Thisisthefootnoteoftheinvoice!
(1) ticket.printInvoice() (2) ticket.printInvoice() (3) ticket.printInvoice() (4) new FootDecorator(new