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

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

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

相似考题
更多“某模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。以下( )情况适合选用该模式。 ”相关问题
  • 第1题:

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


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

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

  • 第2题:

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

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

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

  • 第3题:

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

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

    正确答案:A

  • 第4题:

    Strategy模式使得算法可独立于使用它的客户而变化。


    正确答案:正确

  • 第5题:

    以下意图哪个是用来描述COMMAND(命令)?()

    • A、将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作
    • B、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化
    • C、为其他对象提供一种代理以控制对这个对象的访问
    • D、保证一个类仅有一个实例,并提供一个访问它的全局访问点

    正确答案:A

  • 第6题:

    同密模式使用通用的加、解扰算法,使得机顶盒的生产厂家可以生产独立于CA厂商的解扰器,可以方便的更换解扰算法。


    正确答案:错误

  • 第7题:

    以下意图哪个是用来描述FACTORY METHOD(工厂方法)?()

    • A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
    • B、表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
    • C、定义一个用于创建对象的接口,让子类决定实例化哪一个类。该模式使一个类的实例化延迟到其子类
    • D、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化

    正确答案:C

  • 第8题:

    单选题
    关于模式适用性,在以下情况可以使用builder模式?()
    A

    当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时

    B

    当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时

    C

    当构造过程必须允许被构造的对象有不同的表示时

    D

    一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为


    正确答案: C
    解析: 暂无解析

  • 第9题:

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

    桥接模式

    B

    命令模式

    C

    策略模式

    D

    工厂模式


    正确答案: A
    解析: 暂无解析

  • 第10题:

    单选题
    Decorator(装饰)模式的意图是:()。
    A

    定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换

    B

    为一个对象动态连接附加的职责

    C

    你希望只拥有一个对象,但不用全局对象来控制对象的实例化

    D

    在对象之间定义一种一对多的依赖关系,这样当一个对象的状态改变时,所有依赖于它的对象都将得到通知并自动更新


    正确答案: B
    解析: 暂无解析

  • 第11题:

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

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

  • 第12题:

    单选题
    以下意图哪个是用来描述策略模式()
    A

    将抽象部分与它的实现部分分离,使它们都可以独立地变化

    B

    将一个复杂对象的构建与它的表示分离

    C

    定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换


    正确答案: B
    解析: 暂无解析

  • 第13题:

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

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

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

  • 第14题:

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

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

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

  • 第15题:

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


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

  • 第16题:

    以下意图哪个是用来描述SINGLETON(单件)?()

    • A、将一个类的接口转换成客户希望的另外一个接口该模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
    • B、保证一个类仅有一个实例,并提供一个访问它的全局访问点
    • C、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化
    • D、用一个中介对象来封装一系列的对象交互

    正确答案:B

  • 第17题:

    Decorator(装饰)模式的意图是:()。

    • A、定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换
    • B、为一个对象动态连接附加的职责
    • C、你希望只拥有一个对象,但不用全局对象来控制对象的实例化
    • D、在对象之间定义一种一对多的依赖关系,这样当一个对象的状态改变时,所有依赖于它的对象都将得到通知并自动更新

    正确答案:B

  • 第18题:

    关于模式适用性,在以下情况可以使用builder模式?()

    • A、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
    • B、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
    • C、当构造过程必须允许被构造的对象有不同的表示时
    • D、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为

    正确答案:B

  • 第19题:

    你了解几种排序算法?它们各自有什么优缺点?分别适合在什么情况下使用?


    正确答案:常见的排序算法有:冒泡排序、选择排序、快速排序等。前二者较简单,适合于元素个数较少的场合,而快速排序法则速度较快,适合于各种场合。

  • 第20题:

    填空题
    Strategy意图是定义一系列的算法,把它们一个个()起来, 并且使它们可相互替换

    正确答案: 封装
    解析: 暂无解析

  • 第21题:

    判断题
    Strategy模式使得算法可独立于使用它的客户而变化。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第22题:

    单选题
    以下意图哪个是用来描述命令模式()
    A

    将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化

    B

    定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换

    C

    为其他对象提供一种代理以控制对这个对象的访问

    D

    保证一个类仅有一个实例,并提供一个访问它的全局访问点


    正确答案: C
    解析: 暂无解析

  • 第23题:

    问答题
    你了解几种排序算法?它们各自有什么优缺点?分别适合在什么情况下使用?

    正确答案: 常见的排序算法有:冒泡排序、选择排序、快速排序等。前二者较简单,适合于元素个数较少的场合,而快速排序法则速度较快,适合于各种场合。
    解析: 暂无解析