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

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

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

相似考题
更多“对于如下所示的序列图所描述的场景,最适合于采用的设计模式是( );该模式适用的场合是(请作答此空)。”相关问题
  • 第1题:

    如下所示的UML序列图中, (请作答此空) 表示返回消息,Account类必须实现的方法有 ( ) 。

    A.tansID
    B.balance
    C.withdraw
    D.deposit

    答案:B
    解析:
    在URL序列图中,调用消息用带实心箭头的实线表示,返回消息用带箭头的虚线表示,图中编号为1、2、3、5的消息均为调用消息,只有编号为3的消息为返回消息。由题目可知,Fund Transaction Manager要调用类Account的checkBalance()、withdraw()和deposit()方法,类Account需要实现这3个方法。

  • 第2题:

    某一非确定性有限自动机(NFA)的状态转换图如下图所示,与该NFA等价的正规式是( ),与该NFA等价的DFA是(请作答此空)。




    答案:A
    解析:

  • 第3题:

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

    A.依赖
    B.关联
    C.继承
    D.聚合

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

  • 第4题:

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

    A.适配器
    B.命令
    C.装饰
    D.代理

    答案:B
    解析:
    适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。命令模式:将一个请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化,队请求排队或记录请求日志,以及支持可撤销的操作。装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。代理模式:为一个对象提供代理以控制该对象的访问。类之间的关系主要有以下几种:(1)继承关系:是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化。在UML建模语言中,采用空心三角形表示,从子类指向父类。(2)关联关系:是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。在UML类图中,双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,带普通箭头的实心线指向被拥有者。(3)聚合关系:是整体与部分之间的关系,是强的关联关系。在UML中,聚合关系用带空心菱形的实心线,菱形指向整体。(4)依赖关系:也是类之间的一种静态关系,表现为一个类是另外一个类的局部变量。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

  • 第5题:

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

    A.该设计模式中的Observer需要维护至少一个Subject对象
    B.该设计模式中的ConcreteObserver可以绕过Subject及其子类的封装
    C.该设计模式中一个Subject对象需要维护多个Observer对象
    D.该设计模式中Subject需要通知Observer对象其自身的状态变化

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

  • 第6题:

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

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

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

  • 第7题:

    欲开放一个绘图软件,要求使用不同的绘图程序绘制不同的图形,该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序,以绘制直线和图形为例,得到如下图所示的类图,该设计采用( )模式将抽象部分与其实现部分分离,使它们都可以独立的变化。其中(请作答此空)定义了实现类接口,该模式适用于( )的情况,该模式属于( )模式。

    A.Shape]
    B.Circle和Rectangle]
    C.V1Drawing和V2Drawing
    D.drawing

    答案:A
    解析:
    Drawing类是抽象类,Shape类是实现类,在桥接图中由抽象类指向实现类。

  • 第8题:

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

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

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

  • 第9题:

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

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

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

  • 第10题:

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

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

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

  • 第11题:

    在基于体系结构的软件设计方法中,采用(请作答此空 )来描述软件架构,采用()但来描述功能需求,采用()来描述质量需求。

    A. 类圈和序列图
    B. 视角与视图
    C. 构件和类圈
    D. 构件与功能

    答案:B
    解析:
    根据基于软件架构的设计的定义,基于软件架构的设计(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。

  • 第12题:

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


    A. Visitor
    B. Strategy
    C. Observer
    D. State

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

  • 第13题:

    下图所示的扩展E-R图中,属性“电话”属于( ),在逻辑结构设计中,该图中的(请作答此空)属性将不会被转换到关系模式中。


    A.性别
    B.电话
    C.年龄
    D.工号

    答案:C
    解析:

  • 第14题:

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

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

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

  • 第15题:

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

    A.适配器
    B.桥接
    C.装饰
    D.代理

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

  • 第16题:

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

    A.依赖和关联
    B.依赖和继承
    C.关联和实现
    D.继承和实现

    答案:C
    解析:
    图中Component定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent定义一个对象,可以给这个对象添加一些职责Decorator维持一个指向Compnonent对象的指针 ,并定义一个与Component接口-致的接口ConcreateDecorator向组件添加职责装饰( Decorator )模式适应于:在不影响其它对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时Decorator和Component之间应为关联与实现关系ConcreteDecorator和Decorator之间是继承(泛化)关系

  • 第17题:

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

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

  • 第18题:

    从数据库管理系统的角度看,数据库系统一般采用如下图所示的三级模式结构。图中①②处应填写(请作答此空),③处应填写( )。

    A.外模式/概念模式
    B.概念模式/内模式
    C.外模式/概念模式映像
    D.概念模式/内模式映像

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

  • 第19题:

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

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

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

  • 第20题:

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

    A.Visitor
    B.Strategy
    C.Observer
    D.State

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

  • 第21题:

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


    A.Visitor
    B.Strategy
    C.Observer
    D.State

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

  • 第22题:

    ( )的选择是开发一个软件系统时的基本设计决策;( )是最低层的模式,关注软件系统的设计与实现,描述了如何实现构件及构件之间的关系。引用一计数是C++管理动态资源时常用的一种(请作答此空)。

    A. 架构模式
    B. 惯用法
    C. 设计模式
    D. 分析模式

    答案:B
    解析:
    本题考查软件设计中使用的架构模式、设计模式和惯用法的基本概念。
    架构模式是软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决策;设计模式主要关注软件系统的设计,与具体的实现语言无关:惯用法则是实现时通过某种特定的程序设计语言来描述构件与构件之间的关系,例如引用-计数就是C++语言中的一种惯用法。

  • 第23题:

    在基于体系结构的软件设计方法中,采用()来描述软件架构,采用()但来描述功能需求,采用( 请作答此空)来描述质量需求。

    A. 连接件
    B. 用例
    C. 质量场景
    D. 视角

    答案:C
    解析:
    根据基于软件架构的设计的定义,基于软件架构的设计(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。

  • 第24题:

    在基于体系结构的软件设计方法中,采用()来描述软件架构,采用(请作答此空 )但来描述功能需求,采用()来描述质量需求。

    A. 类图
    B. 视角
    C. 用例
    D. 质量场景

    答案:C
    解析:
    根据基于软件架构的设计的定义,基于软件架构的设计(Architecture Based Software Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。