Observer(观察者)模式适用于()A、当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用B、当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变时C、当一个对象必须通知其它对象,而它又不能假定其它对象是谁也就是说你不希望这些对象是紧密耦合的D、一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作

题目

Observer(观察者)模式适用于()

  • A、当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用
  • B、当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变时
  • C、当一个对象必须通知其它对象,而它又不能假定其它对象是谁也就是说你不希望这些对象是紧密耦合的
  • D、一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

第2题:

已知一个类可以处理以英制标准(英寸、英里等)表示的数据,现在需要处理一公制单位表示的数据,则可以使用Adapter模式来解决该问题。当( )时,可以使用该设计模式。

A.对一个抽象的实现部分的修改对用户不产生影响
B.想使用一个已经存在的类,而它的接口不符合用户需求
C.一个系统要独立于它的产品创建、组合和表示
D.一个对象的改变需要同时改变其他对象

答案:B
解析:
Adapter的设计意图是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Adapter模式适用于以下情况:
想使用一个已经存在的类,而它的接口不符合要求。想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。仅适用于对象Adapter想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配它的父类接口。

第3题:

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

A.命令(Command)

B.责任链(Chain of Responsibility)

C.观察者(Observer)

D.策略(Strategy)


正确答案:D

第4题:

对于如下所示的序列图所描述的场景,最适合于采用的设计模式是(请作答此空);该模式适用的场合是( )。

A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为
B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作
C.需要使用一个算法的不同变体
D.一个对象必须通知其它对象,而它又不能假定其它对象是谁

答案:B
解析:
访问者(visitor)模式是一种对象的行为模式,用于表示一个作用于某对象结构中的各元素的操作,它使得用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式使得新的操作变得很容易,但在一定程度上破坏了封装性。

第5题:

下图所示为 ( ) 设计模式,属于 ( ) 设计模式,适用于 (请作答此空) 。

A.表示对象的部分—整体层次结构时
B.当一个对象必须通知其他对象,而它又不能假定其他对象是谁时
C.当创建复杂对象的算法应该独立于该对象的组成部分及其装配方式时
D.在需要比较通用和复杂的对象指针代替简单的指针时

答案:A
解析:
选项A代理(Proxy)模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:远程代理(Remote Proxy)为一个对象在不同地址空间提供据不代表;虚代理 (Virtual Proxy)根据需要创建开销很大的对象;保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权限的时候;智能指引(Smart Reference)取代了简单的指针,它在访问对象时执行一些附加操作选项B生成器/建造者(Builder)模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示选项C组合(Composite)模式将对象组合成树形结构以表示“部分-整体”的层次结构它使得客户对单个对象和复合对象的使用具有一致性选项D观察者(Observer)模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新发生改变的对象称为观察目标,被通知的对象称为观察者一个观察目标可以对应多个观察者从本题图中可看出,类Leaf表示叶子节点(部分节点),类Composite表示组合节点(整体节点),它们同时继承于父类Component,同时实现了相同的操作Operation,这使得客户对单个对象(Leaf类对象)和复合对象(Composite类对象)的使用具有一致性,试题(44)选择C选项组合模式将对象组合成树形结构以表示“部分-整体”的层次结构关系,故试题(45)选择B选项,试题(46)选择A选项

第6题:

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

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

答案:C
解析:
策模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换策模式让算法独立于使用它的客户而独立变化
应用场景:
1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为
2、 需要在不同情况下使用不同的策(算法),或者策还可能在未来用其它方式来实现
3、 对客户隐藏具体策(算法)的实现细节,彼此完全独立

第7题:

请回答46,下图所示为(44)设计模式,属于(45)设计模式,适用于(46)。

A.表示对象的部分—整体层次结构时
B.当一个对象必须通知其它对象,而它又不能假定其它对象是谁时
C.当创建复杂对象的算法应该独立于该对象的组成部分及其装配方式时
D.在需要比较通用和复杂的对象指针代替简单的指针时

答案:A
解析:
本题考查面向对象设计模式知识点设计模式是一套被反复使用、经过分类编目的代码设计经验的总结使用设计模式是为了复用成功的设计和体系结构、复用相似问题的相同解决方案,保证代码可靠性,使代码编制真正工程化,能够适应需求的变化共有23种设计模式

组合(Composite)模式将对象组合成树形结构以表示“部分-整体”的层次结构它使得客户对单个对象和复合对象的使用具有一致性

设计模式有如下的分类:

1.创建型模式单独对对象的创建进行研究,从而能够高效地创建对象6个创建型模式:简单工厂模式(SimpleFactory)、工厂方法模式(FactoryMethod)、抽象工厂模式(AbstractFactory)、创建者模式(Builder)、原型模式(Prototype)、单例模式(Singleton)

2.结构型模式研究对象的组成以及对象之间的依赖关系,如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等有7个具体的结构型模式可供研究,它们分别是:外观模式(Facade)、适配器模式(Adapter)、代理模式(Proxy)、装饰模式(Decorator)、桥接模式(Bridge)、组合模式(Composite)、享元模式(Flyweight)

3.行为型模式行为型设计模式是对对象的行为进行研究,它们分别是:模板方法模式(TemplateMethod)、观察者模式(Observer)、状态模式(State)、策模式(Strategy)、职责链模式(ChainofResponsibility)、命令模式(Command)、访问者模式(Visitor)、调停者模式(Mediator)、备忘录模式(Memento)、迭代器模式(Iterator)、解释器模式(Interpreter)

从本题图中可看出,类Leaf表示叶子节点(部分节点),类Composite表示组合节点(整体节点),它们同时继承于父类Component,同时实现了相同的操作Operation,这使得客户对单个对象(Leaf类对象)和复合对象(Composite类对象)的使用具有一致性,试题(44)选择C选项组合模式将对象组合成树形结构以表示“部分-整体”的层次结构关系,故试题(45)选择B选项,试题(46)选择A选项


第8题:

对于如下所示的序列图所描述的场景,最适合于采用的设计模式是( );该模式适用的场合是( )。

A.Visitor B.Strategy C.Observer D.State A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为 B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作 C.需要使用一个算法的不同变体 D.一个对象必须通知其它对象,而它又不能假定其它对象是谁


正确答案:A,B

第9题:


A.表示对象的部分—整体层次结构时
B. 当一个对象必须通知其它对象,而它又不能假定其它对象是谁时
C.当创建复杂对象的算法应该独立于该对象的组成部分及其装配方式时
D.在需要比较通用和复杂的对象指针代替简单的指针时

答案:A
解析:

选项A代理(Proxy)模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:远程代理 (Remote Proxy) 为一个对象在不同地址空间提供据不代表;虚代理 (Virtual Proxy) 根据需要创建开销很大的对象;保护代理 (Protection Proxy) 控制对原 始对象的访问,用于对象应该有不同的访问权限的时候;智能指引 (Smart Reference) 取代了简单的指针,它在访问对象时执行一些附加操作。

选项B生成器/建造者(Builder)模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

选项C组合(Composite)模式。将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。

选项D观察者(Observer)模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。发生改变的对象称为观察目标,被通知的对象称为观察者。一个观察目标可以对应多个观察者。

从本题图中可看出,类Leaf表示叶子节点(部分节点),类Composite表示组合节点(整体节点),它们同时继承于父类Component,同时实现了相同的操作Operation,这使得客户对单个对象(Leaf类对象)和复合对象(Composite类对象)的使用具有一致性!

第10题:

对于如下所示的序列图所描述的场景,最适合于采用的设计模式是( );该模式适用的场合是(请作答此空)。

A.对象的行为决定于它的状态,且必须在运行时刻根据状态改变它的行为
B.定义对象结构的类很少改变,但经常需要在此结构上定义新的操作
C.需要使用一个算法的不同变体
D.一个对象必须通知其他对象,而它又不能假定其他对象是谁

答案:B
解析:
访问者(Visitor)模式是一种对象的行为模式,用于表示一个作用于某对象结构中的各元素的操作,它使得用户可以在不改变各元素的类的前提下,定义作用于这些元素的新操作。访问者模式使得新的操作变得很容易,但在一定程度上破坏了封装性。

更多相关问题