装饰器 (Decorator) 模式用于();外观 (Facade) 模式用于()。 ①将一个对象加以包装以给客户提供
装饰器 (Decorator) 模式用于();外观 (Facade) 模式用于()。 ①将一个对象加以包装以给客户提供其希望的另外一个接口 ②将一个对象加以包装以提供一些额外的行为 ③将一个对象加以包装以控制对这个对象的访问 ④将一系列对象加以包装以简化其接口
A.①B.②C.③D.④A.①B.②C.③D.④
装饰器 (Decorator) 模式用于();外观 (Facade) 模式用于()。 ①将一个对象加以包装以给客户提供其希望的另外一个接口 ②将一个对象加以包装以提供一些额外的行为 ③将一个对象加以包装以控制对这个对象的访问 ④将一系列对象加以包装以简化其接口
A.①B.②C.③D.④A.①B.②C.③D.④
A.桥接(Bridge) B.适配器(Adapter) C.组成(Composite) D.装饰器 (Decorator) A.桥接(Bridge) B.适配器(Adapter) C.组成(Composite) D.装饰器 (Decorator)
行为型设计模式描述类或对象如何交互和如何分配职责。以下()模式是行为型设计模式。
A.装饰器(Decorator)
B.构建器(Builder)
C.组合(Composite)
D.解释器(Interpreter)
A.组合(Composite) B.装饰器(Decorator)C.代理(Proxy) D.单例(Singleton)
● 欲动态地给一个对象添加职责,宜采用(46)模式。 A.适配器(Adapter) B.桥接(Bridge)C.组合(Composite) D.装饰器(Decorator)
将一个接口转换成为客户想要的另一个接口,宜采用(46)模式。
A.适配器(Adapter)
B.桥接(Bridge)
C.组合(Composite)
D.装饰器(Decorator)
●欲动态地给一个对象添加职责,宜采用 (43)模式。
(43)
A.适配器(Adapter)
B.桥接(Bridge)
C.组合(Composite)
D.装饰器(Decorator)
● (44)模式通过提供与对象相同的接口来控制对这个对象的访问。
(44)
A.适配器(Adapter)
B.代理(Proxy)
C.组合(Composite)
D.装饰器(Decorator)
A. 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
B. 处理那些可以撤消的职责
C. 客户程序与抽象类的实现部分之间存在着很大的依赖性
D. 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类
(41)
A. Facade(外观)
B. Singleton(单件)
C. Participant(参与者)
D. Decorator(装饰)
(42)
A. Facade(外观)
B. Singleton(单件)
C. Participant(参与者)
D. Decorator(装饰)
试题六(共15分)
阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图6-1所示的类图。
【java代码】
class invoice{
public void printInvoice(){:
System.out.println ("This is the content of the invoice!");
}
}
class Decorator : extends Invoice {
protected Invoice ticket;
public Decorator(lnvoice t){
ticket = t;
}
public void printinvoice(){
if(ticket != NULL)
(1);
}
}
class FootDecorator extends Decorator{
public FootDecorator(lnvoice t){
super(t);
}
public void printinvoice (){
Systent.out.println("This is the header of the invoice! ");
(2) ;
}
}
class FootDecorator extends Decorator {
public FootDecorator(invoice t):{
super(t);
}
public void printlnvoice(){
(3) ;
Systent.out.println("This is the header of the invoice! ");
}
}
Class test {
public static void main(string[] args){
Invoice t =new invioce();
Invoice ticket;
Ticket= (4) ;
Ticket. Printinvoice();
Systent.out.println(“--------------“)
Ticket= (5) ;
Ticket. Printinvoice();
}
}
程序的输出结果为:
This is the header of the invoice!
This is the content of the invoice!
This is the footnote of the invoice!
----------------------------
This is the header of the invoice!
This is the footnote of the invoice!
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!