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

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


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

参考解析

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

相关考题:

图5-6UML类图所示意的设计模式的意图是(47)。A.为特定的客户(或情况)提供特定系列的对象B.定义一系列的算法并将它们一个个封装起来,使它们可以相互替换C.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示D.定义一个用于创建对象的接口,让子类决定实例化哪一个类

(44)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。这一模式使得算法可独立于它的客户而变化。A.策略(Strategy)B.抽象工厂(Abstract Factory)C.观察者(Visitor)D.状态(State)

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

对于如下所示的序列图所描述的场景,最适合于采用的设计模式是( );该模式适用的场合是( )。A.Visitor B.Strategy C.Observer D.State A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为 B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作 C.需要使用一个算法的不同变体 D.一个对象必须通知其它对象,而它又不能假定其它对象是谁

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

一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用 (请作答此空) 模式,用一个中介对象来封装一系列的对象交互,从而使各对象不需要显式地相互引用,使其耦合松散,而且可以独立地改变它们之间的交互。此模式与 ( ) 模式是相互竞争的模式,主要差别是:前者的中介对象封装了其他对象间的通信,而后者通过引入其他对象来分布通信。A.解释器(Interpreter)B.策略(Strategy)C.中介者(Mediator)D.观察者(Observer)

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

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

下面的UML类图描绘的是( )设计模式。关于该设计模式的叙述中,错误的是(请作答此空)。A.该设计模式中的Observer需要维护至少一个Subject对象B.该设计模式中的ConcreteObserver可以绕过Subject及其子类的封装C.该设计模式中一个Subject对象需要维护多个Observer对象D.该设计模式中Subject需要通知Observer对象其自身的状态变化

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

( )模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化A.命令(Command) B.责任链(ChainofResponsibility) C.观察者(Observer) D.策略(Strategy)

下图是( )设计模式的类图,该设计模式的目的是(请作答此空),图中,ConcreteStrategy和Strategy之间是( )关系,Strategy和Context之间是( )关系。A.将一个类的接口转换为客户期望的另一种接口,使得原本不匹配的接口而无法合作的类可以一起工作B.定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。C.动态地给一个对象附加额外的职责,不必通过子类就能灵活地增加功能D.为一个对象提供代理以控制该对象的访问

对于如下所示的序列图所描述的场景,最适合于采用的设计模式是(请作答此空);该模式适用的场合是( )。A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作C.需要使用一个算法的不同变体D.一个对象必须通知其它对象,而它又不能假定其它对象是谁

对于如下所示的序列图所描述的场景,最适合于采用的设计模式是( );该模式适用的场合是(请作答此空)。A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作C.需要使用一个算法的不同变体D.一个对象必须通知其他对象,而它又不能假定其他对象是谁

已知一个类可以处理以英制标准(英寸、英里等)表示的数据,现在需要处理一公制单位表示的数据,则可以使用( )模式来解决该问题。当(请作答此空)时,可以使用该设计模式。A.对一个抽象的实现部分的修改对用户不产生影响B.想使用一个已经存在的类,而它的接口不符合用户需求C.一个系统要独立于它的产品创建、组合和表示D.一个对象的改变需要同时改变其他对象

对于如下所示的序列图所描述的场景,最适合于采用的设计模式是(30);该模式适用的场合是(31)。A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作C.需要使用一个算法的不同变体D.一个对象必须通知其它对象,而它又不能假定其它对象是谁

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

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

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

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

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

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

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

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

单选题以下意图哪个是用来描述命令模式()A将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化B定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换C为其他对象提供一种代理以控制对这个对象的访问D保证一个类仅有一个实例,并提供一个访问它的全局访问点

单选题关于模式适用性,在以下情况不适合使用STRATEGY(策略)模式?()A当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之,你不希望这些对象是紧密耦合的B许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法C需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时可以使用策略模式D算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构

单选题以下意图哪个是用来描述策略模式()A将抽象部分与它的实现部分分离,使它们都可以独立地变化B将一个复杂对象的构建与它的表示分离C定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换