工学

单选题关于模式适用性,在以下情况不适合使用DECORATOR(装饰)模式?()A 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责B 处理那些可以撤消的职责C 客户程序与抽象类的实现部分之间存在着很大的依赖性D 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类

题目
单选题
关于模式适用性,在以下情况不适合使用DECORATOR(装饰)模式?()
A

在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责

B

处理那些可以撤消的职责

C

客户程序与抽象类的实现部分之间存在着很大的依赖性

D

当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

Decorator模式的结构图如图13-4所示。关于其说法不正确的是(50)。

A.动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。

B.在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责。

C.Decorator模式的两个主要优点是:比静态继承更灵活,避免在层次结构高层的类有太多的特征。

D.Decorator模式是一种行为模式。


正确答案:D
解析:Decorator模式是一种对象结构模式,用于描述对象之间的结构关系,从题中的结构图可看出,它并不描述对象的行为。Decorator模式的意图是动态地给一个对象添加一些额外的职责。就增加功能来说,该模式相比生成子类更为灵活。它适用于以下情况:①在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责。②处理那些可以撤消的职责。③当不能采用生成子类的方法进行扩充时,有两种情况:一种情况可能是有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长;另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。

第2题:

行为型设计模式描述类或对象如何交互和如何分配职责。( )模式是行为型设计模式

A.装饰器(Decorator)
B.构建器(Builder)
C.组合(Composite)
D.解释器(Interpreter)

答案:D
解析:
本题考查设计模式的基础知识。设计模式:是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。设计模式分为三种类型,共23种。1、创建型模式:单例模式、抽象工厂模式、建造者(构建)模式、工厂模式、原型模式。2、结构型模式:适配器模式、桥接模式、装饰(器)模式、组合模式、外观模式、享元模式、代理模式。3、行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。AC为结构型设计模式,B为创建型设计模式。故正确答案为:D

第3题:

行为型设计模式描述类或对象如何交互和如何分配职责。以下()模式是行为型设计模式。

A.装饰器(Decorator)

B.构建器(Builder)

C.组合(Composite)

D.解释器(Interpreter)


正确答案:D

第4题:

以下哪些设计模式都可以用来将抽象部分与实现部分分离()

  • A、适配器模式(Adapter)
  • B、装饰模式(Decorator)
  • C、桥接模式(Bridge)
  • D、代理模式(Proxy)

正确答案:C

第5题:

Decorator(装饰)模式的解决方案是什么?如何实现?


正确答案: 解决方案是允许扩展一个对象的功能,而不必借助于子类型化。
实现:创建一个抽象类来表示原始的类和要添加到这个类上的新功能。在装饰者类中,将“对新功能的调用”放在“对紧随其后对象的调用”之前或之后,以获得正确的顺序。

第6题:

创建型设计模式抽象了实例化过程,有助于系统开发者将对象的创建、组合和表示方式进行抽象。以下( )模式是创建型模式。

A.组合(Composite) B.装饰器(Decorator)C.代理(Proxy) D.单例(Singleton)


正确答案:D

第7题:

下图是(请作答此空)设计模式的类图,该设计模式的目的是( ),图中,Decorator和Component之间是( )关系,ConcreteDecorator和Decorator之间是( )关系。

A.适配器
B.桥接
C.装饰
D.代理

答案:C
解析:
图中Component定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent定义一个对象,可以给这个对象添加一些职责Decorator维持一个指向Compnonent对象的指针 ,并定义一个与Component接口-致的接口ConcreateDecorator向组件添加职责装饰( Decorator )模式适应于:在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时Decorator和Component之间应为关联与实现关系ConcreteDecorator和Decorator之间是继承(泛化)关系

第8题:

下图所示为(46)设计模式,

A.组件(Component)

B.适配器(Adapter)

C.组合(Composite)

D.装饰器(Decorator)


正确答案:C
题中的图,即为组合模式的标准UML图,所以应对软件设计师考试,要求掌握常见设计模式的UML图示。组合模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

第9题:

结构型模式中最体现扩展性的几种模式是()

  • A、适配器(Adapte)模式
  • B、合成(Composite)模式
  • C、装饰(Decorator)模式
  • D、桥接(Bridge)模式

正确答案:C

第10题:

Decorator(装饰)模式的效果是什么?


正确答案: 被添加的功能属于小的对象。好处是可以在Concrete Component对象的功能之前或之后动态添加功能。虽然一个装饰者可以在被装饰者之前或之后添加功能,但对象链总是以Concrete Component对象结束。

更多相关问题