软件水平考试

设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象。而无须指定它们具体的类,这是一种( )模式;(请作答此空)模式将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,这属于( )模式;( )模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志并支持可撤销的操作。A.Bridge B.Proxy C.Protot

题目
设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象。而无须指定它们具体的类,这是一种( )模式;(请作答此空)模式将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,这属于( )模式;( )模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志并支持可撤销的操作。



A.Bridge
B.Proxy
C.Prototype
D.Adapter
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列关于单例设计模式的描述中,正确的是()

A、将一个类设计为单例设计模式,在其他类中可以创建这个类对象

B、将一个类设计为单例设计模式,必须私有其空参数构造方法,并且还不能定义有参数的构造方法

C、将一个类设计为单例设计模式,需要定义一个静态的成员方法将本类创建的对象返回给调

D、以上答案都不对


正确答案:B

第2题:

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

A.将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,队请求排队或记录请求日志,以及支持可撤销的操作
B.将一个类的接口适配成用户所期待的
C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
D.为一个对象提供代理以控制该对象的访问

答案:A
解析:
适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。命令模式:将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,队请求排队或记录请求日志,以及支持可撤销的操作。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

第3题:

设计模式将抽象部分与它的实现部分相分离,使它们都可以独立地变化。下图为该设计模式的类图,其中,(44)用于定义实现部分的接口。

A.Singleton(单件)

B.Bridge(桥接)

C.Composite(组合)

D.Facade(外观)


正确答案:B

第4题:

设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类,它是一种( )模式;( )模式将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,它属于(请作答此空)模式;( )模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。

A.组合型
B.结构型
C.行为型
D.创建型

答案:B
解析:
设计模式包括:创建型、结构型、行为型三大类别。抽象工厂模式属于创建型设计模式。桥接模式属于结构型设计模式。

第5题:

设计模式描述了一个出现在特定设计语境中的设计再现问题,并为它的解决方案提供了一个经过充分验证的通用方案,不同的设计模式关注解决不同的问题。例如,抽象工厂模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类,它是一种( )模式;(请作答此空)模式将类的抽象部分和它的实现部分分离出来,使它们可以独立变化,它属于( )模式;( )模式将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。

A.Bridge
B.Proxy
C.Prototype
D.Adapter

答案:A
解析:
设计模式包括:创建型、结构型、行为型三大类别。抽象工厂模式属于创建型设计模式。桥接模式属于结构型设计模式。

第6题:

下列设计模式中, (请作答此空) 模式既是类结构型模式,又是对象结构型模式。此模式与 ( ) 模式类似的特征是,都给另一个对象提供了一定程度上的间接性,都涉及到从自身以外的一个接口向这个对象转发请求。

A.桥接(Bridge)
B.适配器(Adapter)
C.组成(Composite)
D.装饰器(Decorator)

答案:B
解析:
适配器模式(Adapter)用于将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器有类结构和对象结构两种模式,如下图所示。在类适配器中,因为Adapter类既继承了Adaptee(被适配类),也实现了Target接口,在Client类中我们可以根据需要选择并创建任一种符合需求的子类,来实现具体功能。在对象适配器中,Adapter不是使用多继承或继承再实现的方式,而是使用直接关联,或者称为委托的方式。

装饰器模式用于动态地给一个对象添加一些额外的职责或者行为。装饰器模式提供了改变子类的灵活方案。装饰器模式在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。当用于一组子类时,装饰器模式更加有用。如果你拥有一组子类(从一个父类派生而来),你需要在与子类独立使用情况下添加额外的特性,你可以使用装饰器模式,以避免代码重复和具体子类数量的增加。

第7题:

如下UML类图表示的是( )设计模式。以下关于该设计模式的叙述中,错误是(请作答此空)。

A.提供创建一系列相关或相互依赖的对象的接口,而无需指定这些对象所属的具体类
B.可应用于一个系统要由多个产品系列中的一个来配置的时候
C.可应用于强调一系列相关产品对象的设计以便进行联合使用的时候
D.可应用于希望使用已经存在的类,但其接口不符合需求的时候

答案:D
解析:
本题考查面向对象方法中的设计模式知识。
题中的类图是抽象工厂设计模式,该设计模式的意图是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。使用抽象工厂设计模式的常见情形是:一个系统要独立于其产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当需要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显示它们的接口不是实现时。对于希望使用已经存在的类,但其接口不符合需求的情形,应当考虑适配器设计模式。

第8题:

设计模式基于面向对象技术,是人们在长期的开发实践中良好经验的结晶,提供了一个简单、统一的描述方法,使得人们可以复用这些软件设计办法、过程管理经验。按照设计模式的目的进行划分,现有的设计模式可以分为创建型、( )和行为型三种类型。其中( )属于创建型模式,( )属于行为型模式。( )模式可以将一个复杂的组件分成功能性抽象和内部实现两个独立的但又相关的继承层次结构,从而可以实现接口与实现分离。

A.合成型B.组合型C.结构型D.聚合型 A.AdaptorB.FacadeC.CommandD.Singleton A.DecoratorB.CompositeC.MementoD.Builder A.PrototypeB.FlyweightC.AdapterD.Bridge


正确答案:C,D,C,D

第9题:

下面的UML类图描绘的是( )设计模式。关于该设计模式的叙述中,错误的是(请作答此空)。

A.该设计模式中的Observer需要维护至少一个Subject对象
B.该设计模式中的ConcreteObserver可以绕过Subject及其子类的封装
C.该设计模式中一个Subject对象需要维护多个Observer对象
D.该设计模式中Subject需要通知Observer对象其自身的状态变化

答案:B
解析:
本题主要考查设计模式的相关知识。
桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立地变化。
策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
抽象工厂提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。
从本题给出的图我们可以判断是观察者模式,其中被观察对象(Subject),具体被观察对象(ConcreteSubject),观察者(Observer)及具体观察者(ConcreteObserver)。在本设计模式中,Observer需要维护至少一个Subject对象,一个Subject对象需要维护多个Observer对象,另外Subject需要通知Observer对象其自身的状态变化。

第10题:

假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(如下图所示)模式( )。其中( )是客户程序使用的 主要接口,维护对主题类型的引用。此模式为( ),体现的最主要的意图是(请作答此空)。


A.将抽象部分与其实现部分分离,使它们都可以独立地变化
B.动态地给一个对象添加一些额外的职责
C.为其他对象提供一种代理以控制对这个对象的访问
D.将一个类的接口转换成客户希望的另外一个接口。

答案:A
解析:
桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。

更多相关问题