下图是(47)设计模式的类图,该设计模式的目的是(48),图中,Decorator和Component之间是(49)关系
来源:www.zcjsj8.com 发布时间2020-01-08
下图是(47)设计模式的类图,该设计模式的目的是(48),图中,Decorator和Component之间是(49)关系, ConcreteDecorator和Decorator之间是(50)关系。
(47)A.适配器 B.桥接 C.装饰 D.代理
(48)A.将一个类的接口转换为客户期望的另一种接口,使得原本因接口不匹配而无法合作的类可以一起工作
B.将一个抽象与其实现分离开,以便两者能够各自独立地演变
C.为一个对象提供代理以控制该对象的访问
D.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
(49)A.依赖和关联 B.依赖和继承 C.关联和实现 D.继承和实现
(50)A.依赖 B.关联 C.继承 D.组合
【答案】C D C C
【解析】
图中Component定义一个对象接口,可以给这些对象动态地添加职责
ConcreteComponent定义一个对象,可以给这个对象添加一些职责
Decorator维持一个指向Compnonent对象的指针,并定义一个与Component接口一致的接口
ConcreateDecorator向组件添加职责
装饰(Decorator)模式适应于:在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时
Decorator和Component之间应为关联与实现关系
ConcreteDecorator和Decorator之间是继承(泛化)关系