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

题目

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

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

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

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

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

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

  • 第2题:

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

    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选项

  • 第3题:

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

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

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

  • 第4题:

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

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

    答案:B
    解析:
    Adapter的设计意图是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    Adapter模式适用于以下情况:

    想使用一个已经存在的类,而它的接口不符合要求。

    想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。

    仅适用于对象Adapter想使用一个已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口。对象适配器可以适配它的父类接口。

  • 第5题:

    当一个抽象模型有两个方面,其中一个方面依赖于另一方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用,可以考虑使用()

    • A、观察者模式
    • B、命令模式
    • C、适配器模式
    • D、单例模式

    正确答案:A

  • 第6题:

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

    • A、解释器(Interpreter)
    • B、策略(Strategy)
    • C、中介者(Mediator)
    • D、观察者(Observer)

    正确答案:C,D

  • 第7题:

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

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

    正确答案:B

  • 第8题:

    填空题
    ()模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,也就是让对象能在状态改变时被通知。

    正确答案: 观察者
    解析: 暂无解析

  • 第9题:

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

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

    B

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

    C

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

    D

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


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

  • 第10题:

    单选题
    关于模式适用性,在以下情况不适合使用OBSERVER(观察者)模式?()
    A

    当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用

    B

    当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变

    C

    当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之,你不希望这些对象是紧密耦合的

    D

    在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责


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

  • 第11题:

    单选题
    以下意图哪个是用来描述观察者模式()
    A

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

    B

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

    C

    用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

    D

    使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系


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

  • 第12题:

    单选题
    以下意图哪个是用来描述OBSERVER(观察者)?()
    A

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

    B

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

    C

    用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

    D

    使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系


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

  • 第13题:

    请回答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选项


  • 第14题:


    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类对象)的使用具有一致性!

  • 第15题:

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

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

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

  • 第16题:

    ()模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,也就是让对象能在状态改变时被通知。


    正确答案:观察者

  • 第17题:

    以下意图哪个是用来描述OBSERVER(观察者)?()

    • A、将抽象部分与它的实现部分分离,使它们都可以独立地变化
    • B、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
    • C、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
    • D、使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系

    正确答案:B

  • 第18题:

    以下意图哪个是用来描述PROTOTYPE(原型)?()

    • A、允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类
    • B、表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作
    • C、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
    • D、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

    正确答案:D

  • 第19题:

    下列有关类、对象和实例的叙述,正确的是哪一项?()

    • A、类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别
    • B、对象是类的抽象,类是对象的具体化,实例是对象的另一个名称
    • C、类是对象的抽象,对象是类的具体化,实例是类的另一个名称
    • D、类是对象的抽象,对象是类的具体化,实例是对象的另一个名称

    正确答案:D

  • 第20题:

    单选题
    当一个抽象模型有两个方面,其中一个方面依赖于另一方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用,可以考虑使用()
    A

    观察者模式

    B

    命令模式

    C

    适配器模式

    D

    单例模式


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

  • 第21题:

    多选题
    关于访问者模式(Visitor)的适用性以下哪些是正确的()
    A

    一个对象的结构包含多个不同接口的对象,并且需要根据具体对象作不同的处理

    B

    对结构中的对象有很多不同且没有联系的处理,因此需要避免操作将类分离

    C

    类中定义的对象结构很少改变,但需要以常地定义处理结构的新操作

    D

    需要对行为的算法作很多变动


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

  • 第22题:

    单选题
    关于模式适用性,在以下情况不适合使用STRATEGY(策略)模式?()
    A

    当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之,你不希望这些对象是紧密耦合的

    B

    许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法

    C

    需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时可以使用策略模式

    D

    算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构


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

  • 第23题:

    单选题
    以下意图哪个是用来描述PROTOTYPE(原型)?()
    A

    允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类

    B

    表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作

    C

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

    D

    用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象


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