软考-面向对象相关概念(下)

1、【试题分析:类可以分为三种:实体类、接口类(边界类)和控制类。
1)实体类的对象表示现实世界中真实的实体,如人、物等。
2)接口类(边界类)的对象为用户提供的一种与系统合作交互的方式,分为人和系统两大类。其中,人的接口可以是显示屏、窗口、Web窗体、对话框、菜单、列表框、其他显示控制、条形码、二维码或用户与系统交互的其他方法;系统接口涉及把数据发送到其他系统,或者从其他系统接收数据。
3)控制类的对象用来控制活动流,充当协调者。
答案:B A】

2、【试题分析:访问者模式包括以下角色:Visitor,抽象访问者:Concrete Visitor,具体访问者:Element,抽象元素;Concrete Element,具体元素;Object Structure,对象结构。
答案:B A D C】

3、【试题分析:桥接模式将抽象部分与它的实现部分分离,使它们都可以独立地变化。
答案:D A B A】

4、【试题分析:在UML类图中,常见的有以下几种关系。


image.png

类图用于对项目的静态设计视图建模。这种视图主要支持系统 的功能需求,即系统要提供给最终用户的服务。当对系统的静态设计视图建模时,通常以下述三种方式之一使用类图:系统的词汇、简单的协作、逻辑数据库模式。
D选项的对象快照用于对象图中。
答案:A C D】

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


image.png

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

6、【试题分析:类图是最常用的UML图,显示出类、接口和它们之间的静态结构和关系,包括三个组成部分。类名、属性(Attribute)、类提供的方法。类名不能省略,其他组成部分可以省略。
对象图描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
①允许存在多个相同的元素数据,显示不合理;
②根据试题描述,病人和医生之间应该有关联关系,显然该图不符合;
③符合题目中的描述;
④只表达了医生和病人的关系,没有表达存储治疗的时间和日期,缺少一个关联类,因此该图也不符合。
答案:C C】

7、【试题分析:装饰模式是一种对象结构型模式,可以动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。通过装饰模式,可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;当需要动态地给一个对象增加功能,这些功能可以再动态地被撤销时可以使用装饰模式;当不能采用生成子类的方法进行扩充时也可以使用装饰模式。
外观模式是对象的结构模式,要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
答案:B D】

8、【试题分析:通信图也叫作协作图,描述的是对象和对象之间的关系,即一个类操作的实现。简而言之就是对象和对象之间的调用关系,体现的是一种组织关系。“协作”作为一个结构事物用于表达静态结构和动态行为的概念组合,表达不同事物相互协作完成一个复杂功能。文本框中的“:”号表示一个对象,“:”号前的部分是对象名,“:”号后面部分是类名,对象之间连线上面的箭头所标识的是对象之间通信的消息。
答案:C B D】

9、【试题分析:观察者将自己注册到事件,那么具体的事件就知道了自己的观察者。观察者和事件都有自己的抽象,当实现具体的观察者和事件的时候都要实现相应的接口,所以对扩展是开放的,如下图所示。


image.png

答案:C A】

10、【试题分析:
建造者模式(生成器模式):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式将部件和其组装过程分开,一步一步创建一个复杂的对象。
工厂方法:也叫作虚拟构造器模式,它定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类。
原型模式:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。
答案:A A】

11、【试题分析:事件e2发生时,如果当前状态是B2时,它就会离开状态B转入C3;如果当前状态不是B2,那么e2发生时是不会离开状态B的。因此,事件e2发生时不一定会离开状态B。
答案:C】

12、【试题分析:转移(transition)是两个状态之间的一种关系,表示对象将在源状态(Source State)中执行一定的动作,并且某个特定事件在发生且某个特定的警戒条件满足时进入目标状态(Target State)。转移有两个状态,原状态和目标状态。
答案:C】

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

你可能感兴趣的:(软考-面向对象相关概念(下))