niusouti.com

模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化。以下( 45 )情况适合选用该模式。 ①一个客户需要使用一组相关对象 ②一个对象的改变需要改变其它对象 ? 需要使用一个算法的不用变体 ④许多相关的类仅仅是行为有异A.命令(Command)B.责任链(Chain of Responsibility)C.观察者(Observer)D.策略(Strategy)

题目

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

A.命令(Command)

B.责任链(Chain of Responsibility)

C.观察者(Observer)

D.策略(Strategy)


相似考题
参考答案和解析
正确答案:D
更多“模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使 ”相关问题
  • 第1题:

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

    A.策略(Strategy)

    B.抽象工厂(Abstract Factory)

    C.观察者(Visitor)

    D.状态(State)


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

  • 第2题:

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

    A.桥接模式

    B.命令模式

    C.策略模式

    D.工厂模式


    参考答案:A

  • 第3题:

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

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

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

  • 第4题:

    面向对象设计强调定义(),并且使它们相互协作来满足用户需求。

    A软件对象

    B物理模型

    CE-R模型

    D接口


    A

  • 第5题:

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


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

  • 第6题:

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

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

    正确答案:B

  • 第7题:

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

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

    正确答案:A

  • 第8题:

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


    正确答案:错误

  • 第9题:

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

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

  • 第10题:

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

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

    B

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

    C

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

    D

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


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

  • 第11题:

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

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

    B

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

    C

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

    D

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


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

  • 第12题:

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

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

    B

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

    C

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


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

  • 第13题:

    使Cache命中率最高的替换算法是______。

    A.先进先出算法FIFO

    B.随机算法RAND

    C.先进后出算法FILO

    D.替换最近最少使用的块算法LRU


    正确答案:D
    解析:Cache的替换算法主要有以下三种:(1)FIFO算法:把一组中最先调入Cache的字块替换出去,实现较简单。(2)LRU(LeastRecentlyUsed)算法:把一组中近期最少使用的字块替换出去,命中率较高。(3)RAND算法:用随机数发生器产生需替换的字块号,因为不能很好地反映程序局部性,所以命中率较低。由于最近最少使用块算法LRU能比较接近地利用访存局部性原理,因而命中率较高。

  • 第14题:

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


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

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

  • 第15题:

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

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

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

  • 第16题:

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

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

    正确答案:A

  • 第17题:

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


    正确答案:正确

  • 第18题:

    ()等密码学算法都可以用来构造身份认证协议,它们各有特点。

    • A、私钥算法
    • B、公钥算法
    • C、哈希算法
    • D、CA认证
    • E、口令算法

    正确答案:A,B,C

  • 第19题:

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

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

    正确答案:B

  • 第20题:

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

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

    正确答案:C

  • 第21题:

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

    桥接模式

    B

    命令模式

    C

    策略模式

    D

    工厂模式


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

  • 第22题:

    多选题
    ()等密码学算法都可以用来构造身份认证协议,它们各有特点。
    A

    私钥算法

    B

    公钥算法

    C

    哈希算法

    D

    CA认证

    E

    口令算法


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

  • 第23题:

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

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