参考答案和解析
答案:A
解析:
观察者将自己注册到事件,那么具体的事件就知道了自己的观察者观察者和事件都有自己的抽象,当实现具体的观察者和事件的时候都要实现相应接口,所以对扩展是开放
更多“下图所示为观察者(Obserrver)模式的抽象示意图,此模式体现的最主要的特征是( )。 ”相关问题
  • 第1题:

    如图所示,上图中“Logo”图层的图层混合模式为正常,要使图像达到下图所示的效果,应将图层混合模式改为()。

    A、叠加

    B、颜色

    C、颜色加深

    D、亮光


    参考答案:D

  • 第2题:

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

    A.抽象工厂(Abstract Factory)
    B.生成器(Builder)
    C.工厂方法(Factory Method)
    D.原型(Prototype)

    答案:B
    解析:
    生成器又称建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。该模式通常包含Builder,ConcreteBuilder,Di-rector和Product四部分。

  • 第3题:

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

    A.适配器(Adapter)
    B.责任链(Chain of Responsibility)
    C.外观(Facade)
    D.桥接(Bridge)

    答案:C
    解析:
    外观设计模式要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行交互。外观设计模式提供一个高层次的接口,使得子系统更易于使用。
    外观模式适用情况如下:
    1)为复杂的子系统提供一个简单的接口;
    2)客户程序与抽象类的实现部分之间存在着很大的依赖性;
    3)构建一个层次结构的子系统时,适用外观模式定义子系统中每层的入口点。

  • 第4题:

    自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零:交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用( )模式设计实现,其类图如下图所示,其中( )是客户程序使用的主要接口,可用状态来对其进行配置。此模式为(请作答此空),体现的最主要的意图是( )。

    A创建型对象模式
    B结构型对象模式
    C行为型类模式
    D行为型对象模式

    答案:D
    解析:
    状态型模式的特点是对于对象内部的状态,允许其在不同的状态下,拥有不同的行为,对状态单独封装成类。题干中根据投入货币的情况,售货机分别有交付产品不找零和交付产品找零以及不提供货物等行为判断该模式是属于状态模式。VendingMachineState是客户程序使用的主要接口。设计模式的类型如下所示:

    观察者模式(ObserverPattern):观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。访问者模式(VisitorPattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。即对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。备忘录模式(MementoPattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。策略模式(StrategyPattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。命令模式(CommandPattern):将一个请求封装成一个对象,从而使得用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

  • 第5题:

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

    A.创建型
    B.结构型
    C.行为型
    D.结构型和行为

    答案:B
    解析:
    选项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
    解析:
    本题考查的是应试者对数据库系统中模式方面的基本概念。站在数据库管理系统的角度看,数据库系统体系结构一般采用三级模式结构。数据库系统在三级模式之间提供了两级映像:概念模式/内模式映像、外模式/概念模式映像。概念模式/内模式的映像:该映像存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换。外模式/概念模式的映像:该映像存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。正因为这两级映射保证了数据库中的数据具有较高的逻辑独立性和物理独立性。数据的独立性是指数据与程序独立,将数据的定义从程序中分离出去,由DBMS负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。

  • 第7题:

    如下UML类图表示的是(请作答此空)设计模式。以下关于该设计模式的叙述中,错误是( )。

    A.工厂方法
    B.策略
    C.抽象工厂
    D.观察者

    答案:C
    解析:
    本题考查面向对象方法中的设计模式知识。
    题中的类图是抽象工厂设计模式,该设计模式的意图是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。使用抽象工厂设计模式的常见情形是:一个系统要独立于其产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当需要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显示它们的接口不是实现时。对于希望使用已经存在的类,但其接口不符合需求的情形,应当考虑适配器设计模式。

  • 第8题:

    假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(请作答此空)模式(如下图所示)。其中( )是客户程序使用的 主要接口,维护对主题类型的引用。此模式为( ),体现的最主要的意图是( )。


    A.观察者(Observer)
    B.访问者(Visitor)
    C.策略(Strategy)
    D.桥接(Bridge)

    答案:D
    解析:
    桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。

  • 第9题:

    下图所示为(46)设计模式,适用于(47)。


    A.抽象工厂(A.bstrA.ct FA.ctory)
    B.生成器(Builder)
    C.工厂方法(FA.ctory Method)
    D.原型(Prototype)

    答案:B
    解析:
    生成器是又称建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。该模式通常包含Builder,ConcreteBuilder,Di-rector和Product四部分。

  • 第10题:

    自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零 :交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用(44)模式设计实现,其类图如下图所示,其中(45)是客户程序使用的主要接口,可用状态来对其进行配置。此模式为(46),体现的最主要的意图是(47)。


    A.观察者(Obeserver)
    B.状态(State)
    C.策略(Stratehy)
    D.访问者(Visitor)

    答案:B
    解析:

  • 第11题:

    下图所示为观察者(Obserrver)模式的抽象示意图,其中(请作答此空)知道其观察者,可以有任何多个观察者观察同一个目标;提供住处和删除观察者对象的接口。此模式体现的最主要的特征是( )。

    A.Subject
    B.Observer
    C.ConcreteSubject
    D.ConcreteObserver

    答案:C
    解析:
    观察者将自己注册到事件,那么具体的事件就知道了自己的观察者观察者和事件都有自己的抽象,当实现具体的观察者和事件的时候都要实现相应接口,所以对扩展是开放的

  • 第12题:

    单选题
    ()用于封装具体的平台,从而使应用程序可以在不同的平台上运行。
    A

    抽象工厂模式

    B

    外观模式

    C

    观察者模式

    D

    以上选项都不是


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

  • 第13题:

    下图所示为 (46) 设计模式,适用于 (47) 。

    A.抽象工厂(Abstract Factory)

    B.生成器(Builder)

    C.工厂方法(Factory Method)

    D.原型(Prototype)


    正确答案:B
    本题考查设计模式的基本概念。每种设计模式都有特定的意图,描述一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,使该方案能够重用而不必做重复劳动。抽象工厂(AbstractFactory)模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。抽象工厂模式适用于一个系统要独立于它的产品的刨建、组合和表示时;一个系统要由多个产品系列中的一个来配置时:当要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显示它们的接口而不是实现时。生成器(Builder)模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式适用于当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装酡方式时;当构造过程必须允许被构造的对象有不同的表示时。工厂方法(FactoryMethod)定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。工厂方法模式适用于当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。原型(Prototype)模式用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。原型模式适用于:当一个系统应该独立于它的产品创建、构成和表示时:当要实例化的类是在运行时刻指定时,例如通过动态装载,为了避免创建一个与产品类层次平行的工厂类层次时;当一个类的实例只能有几个不同状态组合中的一种时,建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。

  • 第14题:

    自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零:交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用( )模式设计实现,其类图如下图所示,其中(请作答此空)是客户程序使用的主要接口,可用状态来对其进行配置。此模式为( ),体现的最主要的意图是( )。

    A.VendingMachineState
    B.Buy
    C.VendingDepositState
    D.VendingStockState

    答案:A
    解析:
    状态型模式的特点是对于对象内部的状态,允许其在不同的状态下,拥有不同的行为,对状态单独封装成类。题干中根据投入货币的情况,售货机分别有交付产品不找零和交付产品找零以及不提供货物等行为判断该模式是属于状态模式。VendingMachineState是客户程序使用的主要接口。设计模式的类型如下所示:

    观察者模式(ObserverPattern):观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。
    访问者模式(VisitorPattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。即对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。备忘录模式(MementoPattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。策略模式(StrategyPattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。命令模式(CommandPattern):将一个请求封装成一个对象,从而使得用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

  • 第15题:

    自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零:交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用(请作答此空)模式设计实现,其类图如下图所示,其中( )是客户程序使用的主要接口,可用状态来对其进行配置。此模式为( ),体现的最主要的意图是( )。

    A.观察者(Obeserver)
    B.状态(State)
    C.策略(Stratehy)
    D.访问者(Visitor)

    答案:B
    解析:
    状态型模式的特点是对于对象内部的状态,允许其在不同的状态下,拥有不同的行为,对状态单独封装成类。题干中根据投入货币的情况,售货机分别有交付产品不找零和交付产品找零以及不提供货物等行为判断该模式是属于状态模式。VendingMachineState是客户程序使用的主要接口。设计模式的类型如下所示:

    观察者模式(ObserverPattern):观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。访问者模式(VisitorPattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。即对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。备忘录模式(MementoPattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。策略模式(StrategyPattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。命令模式(CommandPattern):将一个请求封装成一个对象,从而使得用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

  • 第16题:

    下图所示的E-R图中,应作为派生属性的是(请作答此空):该E-R图应转换的关系模式为( ),其中各关系模式均满足4NF。

    A.出生日期
    B.年龄
    C.电话
    D.工号

    答案:B
    解析:
    本题考查扩展E-R图的基础知识。扩展E-R图中,实体的属性增加了组合属性、多值属性和派生属性的描述。其中,派生属性是指可以由其他属性来获得的属性。图中的年龄属性,可以由出生日期计算获得,故为派生属性。派生属性在扩展E-R图中使用虚线椭圆来表示,双线椭圆表示多值属性,即一个实体可以在该属性上有多个值,如一个员工可以有多个电话。根据扩展E-R图的转换规则,派生属性在转换过程中丢弃,多值属性与实体的标识符独立转换成一个关系模式,该关系模式属于4NF。其他属性构成的关系模式属于BCNF,无多值依赖,也属于4NF。

  • 第17题:

    下面的UML类图描绘的是(请作答此空)设计模式。关于该设计模式的叙述中,错误的是( )。

    A.桥接
    B.策略
    C.抽象工厂
    D.观察者

    答案:D
    解析:
    本题主要考查设计模式的相关知识。
    桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立地变化。
    策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
    抽象工厂提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
    观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。
    从本题给出的图我们可以判断是观察者模式,其中被观察对象(Subject),具体被观察对象(ConcreteSubject),观察者(Observer)及具体观察者(ConcreteObserver)。在本设计模式中,Observer需要维护至少一个Subject对象,一个Subject对象需要维护多个Observer对象,另外Subject需要通知Observer对象其自身的状态变化。

  • 第18题:

    自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零 :交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用(44)模式设计实现,其类图如下图所示,其中(45)是客户程序使用的主要接口,可用状态来对其进行配置。此模式为(46),体现的最主要的意图是(47)。


    A.创建型对象模式
    B.结构型对象模式
    C.行为型类模式
    D.行为型对象模式

    答案:D
    解析:

  • 第19题:

    假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(如下图所示)模式( )。其中( 请作答此空)是客户程序使用的 主要接口,维护对主题类型的引用。此模式为( ),体现的最主要的意图是( )。


    A.Webapplication
    B.Blog
    C.Theme
    D.Light

    答案:A
    解析:
    桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。

  • 第20题:

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

    A.代理(Proxy)
    B.生成器(Builder)
    C.组合(Composite)
    D.观察者(Observer)

    答案:C
    解析:
    本题考查面向对象设计模式知识点设计模式是一套被反复使用、经过分类编目的代码设计经验的总结使用设计模式是为了复
    用成功的设计和体系结构、复用相似问题的相同解决方案,保证代码可靠性,使代码编制真正工程化,能够适应需求的变化共有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选项组合模式将对象组合成树形结构以表示“部分-整体”的层次结构关系

  • 第21题:

    假设现在要创建一个 Web应用框架,基于此框架能够创建不同的具体 Web应用,比如博客、 新闻网站和网上商店等;并可以为每个 Web 应用创建不同的主题样式,如浅色或深色等。这一 业务需求的类图设计适合采用(如下图所示)模式( )。其中( )是客户程序使用的 主要接口,维护对主题类型的引用。此模式为(请作答此空),体现的最主要的意图是( )。


    A.创建型对象模式
    B.结构型对象模式
    C.行为型类模式
    D.行为型对象模式

    答案:B
    解析:
    桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。

  • 第22题:

    下图所示为观察者(Obserrver)模式的抽象示意图,其中( )知道其观察者,可以有任何多个观察者观察同一个目标;提供住处和删除观察者对象的接口。此模式体现的最主要的特征是(请作答此空)。

    A.类应该对扩展开放,对修改关闭
    B.使所要交互的对象尽量松耦合
    C.组合优先于继承使用
    D.仅与直接关联类交互

    答案:A
    解析:
    观察者将自己注册到事件,那么具体的事件就知道了自己的观察者观察者和事件都有自己的抽象,当实现具体的观察者和事件的时候都要实现相应接口,所以对扩展是开放的

  • 第23题:

    ()用于封装具体的平台,从而使应用程序可以在不同的平台上运行。

    • A、抽象工厂模式
    • B、外观模式
    • C、观察者模式
    • D、以上选项都不是

    正确答案:A