某模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。以下( )情况适合选用该模式。

题目
某模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。以下( )情况适合选用该模式。
①一个客户需要使用一组相关对象
②一个对象的改变需要改变其它对象
③需要使用一个算法的不同变体
④许多相关的类仅仅是行为有异

A.①②
B.②③
C.③④
D.①④
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。以下( 45 )情况适合选用该模式。 ①一个客户需要使用一组相关对象 ②一个对象的改变需要改变其它对象 ? 需要使用一个算法的不用变体 ④许多相关的类仅仅是行为有异

A.命令(Command)

B.责任链(Chain of Responsibility)

C.观察者(Observer)

D.策略(Strategy)


正确答案:D

第2题:

( )模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。以下(请作答此空)情况适合选用该模式。①一个客户需要使用一组相关对象②一个对象的改变需要改变其他对象③需要使用一个算法的不同变体④许多相关的类仅仅是行为有异


A.①②
B.②③
C.③④
D.①④

答案:C
解析:
命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。责任链:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。策略模式:定义一系列的算法,把每一个算法封装起来,并且是它们可互相替换。本模式使得算法可独立于使用它的客户而变化。

第3题:

图5-6UML类图所示意的设计模式的意图是(47)。

A.为特定的客户(或情况)提供特定系列的对象

B.定义一系列的算法并将它们一个个封装起来,使它们可以相互替换

C.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

D.定义一个用于创建对象的接口,让子类决定实例化哪一个类


正确答案:B
解析:图5-6UML类图所描绘的设计模式中的Strategy(策略)模式。其设计意图是:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。换言之,Strategy(策略)模式使得算法可独立于使用它的客户而变化。Abstract Factory(抽象工厂)模式的设计意图是:为特定的客户(或情况)提供特定系列的对象。Builder(建造)模式的设计意图是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Factory Method(工厂方法)模式也称为Polymorphic Factory(多态性工厂)模式或Virtual Constructor (虚拟构造器),其设计意图是:定义一个用于创建对象的接口,让子类决定实例化哪一个类。

第4题:

当我们想封装不同算法并使用他们可相互替换时,可以使用()

  • A、桥接模式
  • B、命令模式
  • C、策略模式
  • D、工厂模式

正确答案:A

第5题:

( )模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化

A.命令(Command)
B.责任链(ChainofResponsibility)
C.观察者(Observer)
D.策略(Strategy)

答案:D
解析:
策模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换策模式让算法独立于使用它的客户而独立变化

第6题:

当我们想封装不同算法并使用他们可相互替换时,可以使用()

A.桥接模式

B.命令模式

C.策略模式

D.工厂模式


参考答案:A

第7题:

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

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

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

第8题:

(44)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。这一模式使得算法可独立于它的客户而变化。

A.策略(Strategy)

B.抽象工厂(Abstract Factory)

C.观察者(Visitor)

D.状态(State)


正确答案:A
观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

第9题:

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

A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作
B.定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能
D.为一个对象提供代理以控制该对象的访问

答案:B
解析:
适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

第10题:

替换算法有哪几种?它们各有什么优缺点?


正确答案: (1)随机法。简单、易于用硬件实现,但这种方法没有考虑Cache块过去被使用的情况,反映不了程序的局部性,所以其失效率比LRU的高。
(2)先进先出法。容易实现。它虽然利用了同一组中各块进入Cache的顺序这一“历史”信息,但还是不能正确地反映程序的局部性。
(3)最近最少使用法LRU。失效率最低。但是LRU比较复杂,硬件实现比较困难。

更多相关问题