十一 面向对象技术(考点篇)试题_UML

A ;D,D。实际答案:C;D,D


考的很偏了。UML 2.0基础结构的设计目标是定义一个元语言的核心 UML 2.0 【InfrastructureLibrary】,通过对此核心的复用,除了可以定义一个自展的UML元模型,也可以 InfrastructureLibrary UML 定义其他元模型,包括 MOF和CWM(Common Warehouse Model,公共仓库模型)。由于共用核心库, MOF CWM(Common Warehouse Model ) 所以UML和MOF、CWM在体系结构上更加一致。同时,InfrastructureLibrary 还提供了定制 UML更 UML MOF CWM InfrastructureLibrary UML强有力的机制,允许用户定义针对不同平台(如.NET、J2EE 等)和领域(如电信、金融、系统工程)的语言。



顺序图,又称为序列图,其中的交互用序列片段表示,这里如果知道其另一个名字就好理解。序列图中的消息包括同步、异步、返回,这是文老师讲过的三种,根据这个基本就能锁定 AD, 但是D也比较糊弄人,因为来了个参与者,可能有的学员想参与者是用例图的没选。


十一 面向对象技术(考点篇)试题_用例_02

D,PAD图是是一种用于描述程序逻辑和结构的图形化工具

十一 面向对象技术(考点篇)试题_设计模式_03

A,B。实际答案A,D。


分析软件模式主要可分为设计模式、分析模式、组织和过程模式等,每一类又可细分为若干 个子类。在此着重介绍设计模式,目前它的使用最为广泛。


设计模式主要用于得到简洁灵活 的系统设计,GoF的书中共有23个设计模式,这些模式可以按两个准则来分类:一是按设 GoF 23计模式的目的划分,可分为创建型、结构型和行为型三种模式;二是按设计模式的范围划分,即根 ,据设计模式是作用于类还是作用于对象来划分,可以把设计模式分为类设计模式对象设计模式


十一 面向对象技术(考点篇)试题_面向对象技术_04

B,C,A。蒙对了

创建性模式支持对象的创建。该模式允许在系统中创建对象,而不需要在代码中标识特定类的类型,这样用户就不需要编写大量、复杂的代码来初始化对象。它是通过该类的子类来创建对象的。


在不指定具体类的情况下,Abstract Factory模式为创建一系列相关或相互依赖的对象提供了一个接口。根据给定的相关抽象类,Abstract Factory模式提供了从一个相匹配的具体子类集创建这些抽象类的实例的方法。Abstract Factory模式提供了一个可以确定合适的具体类 的抽象类,这个抽象类可以用来创建实现标准接口的具体产品的集合。客户端只与产品接口和 Abstract Factory 类进行交互。使用这种模式,客户端不用知道具体的构造类。Abstract Factory模式类似于Factory Method模式,但是Abstract Factory模式可以创建一系列的相 关对象

  

Builder模式复杂对象的构建与其表示相分离,这样相同的构造过程可以创建不同的对象。

通过只指定对象的类型和内容,Builder模式允许客户端对象构建一个复杂对象。客户端可以不受该对象构造的细节的影响。这样通过定义一个能够构建其他类实例的类,就可以简化复杂对象的创建过程。Builder模式生产一个主要产品,而该产品中可能有多个类,但是通常只有一个主类。

  

Prototype模式(原型模式)允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象。使用Prototype实例,便指定了要创建的对象类型,而通过复制这个Prototype,就可以创建新的对象。Prototype模式是通过先给出一个对象的Prototype对象,然后再初始化对象的创建。创建初始化后的对象再通过Prototype 对象对其自身进行复制来创建其他对象。Prototype模式使得动态创建对象更加简单,只要将对象类定义成能够复制自身就可以实现。

十一 面向对象技术(考点篇)试题_面向对象技术_05

看这样子有类名,属性和方法;时序图/顺序图应该有消息:同步、异步、返回,所以B排除;C构件图/组件图应该没这么详细,而且应该带着半圆的供接口,和圆形的需接口,C排除,对象图是类图的快照,而且看图里有1:n之类的可能是类图D,既然是类图,一般是用于开发,选B

十一 面向对象技术(考点篇)试题_用例_06

十一 面向对象技术(考点篇)试题_面向对象技术_07

A,D,C,B

在任何设计活动中都存在着某些重复遇到的典型问题,不同开发人员对这些问题设计出不同的解决方案,随着设计经验在实践者之间日益广泛地被利用,描述这些共同问题和解决这些问题的方案就形成了所谓的模式。

设计模式主要用于得到简洁灵活的系统设计,按设计模式的目的划分,可分为创建型、结构型和行为型三种模式。

创建型模式是对对象实例化过程的抽象

例如 Singleton模式确保一个类只有一个实例,并提供了全局访问入口;Prototype模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象;Builder模式将复杂对象的构建与其表分离。

  

结构型模式 主要 用于如何组合已有的类和对象以获得更大的结构一般借鉴封装、代理、继承等概念将一个或多个类或对象进行组合、封装,以提供统一的外部视图或新的功能

 

行为型模式主要用于对象之间的职责及其提供的服务的分配,它不仅描述对象或类的模式,还描述它们之间的通信模式,特别是描述一组对等的对象怎样相互协作以完成其中任一对象都无法单独完成的任务。

十一 面向对象技术(考点篇)试题_面向对象技术_08

C。实际选A


4+1 视图即:逻辑视图、开发视图、物理视图(部署视图)、进程视图、场景。



架构的4+1视图跟UML4+1视图不同。




十一 面向对象技术(考点篇)试题_UML_09


UML4+1视图



十一 面向对象技术(考点篇)试题_用例_06






十一 面向对象技术(考点篇)试题_设计模式_11

D,C,D,D。实际答案,D,A,B,A。

按照内容分

创建型:Abstrator Factory、Builder(构建器)、Factory Method(工厂方法)、Prototype(原型)、Singleton(单例)

结构型:Adapter(适配器)、Bridge(桥接)、Composite(组合)、Decorator(装饰)、Facade(外观)、Flyweight(享元)、Proxy(代理)

行为型:Chain of Responsibility(职责链)、Command(命令)、Interpreter(解释器模式)、Iterator(迭代器模式)、Mediartor(中介者)、Memento(备忘录)、Observer(观察者)、State(状态)、Strategy(策略)、Template Method(模板方法)、Visitor(访问者)

常靠的记忆要点:

创建型:

  • Abstrator Factory:提供一个接口,用它可创建一系列相互依赖的对象,无需指定具体的类。
  • Builder:类和构造分离。类比较复杂的时候,将表示和构造分开,构件过程有不同的表示。
  • Prototype:原型实例,拷贝。用原型实例指定创建对象的类型,然后拷贝这个原型来建新对象。
  • Singleton:单例

结构型:

  • Adapter:转换、兼容、适配
  • Bridge:把抽象部分和实现部分分离,各自独立变化。
  • Composite:将对象组合成树形结构以表示"整体-部分"的层次结构,这样用户对单个对象和组合对象使用具有一致性。
  • Decorator:动态给对象附加职责,扩展更灵活。
  • Facade:对外统一接口。定义个高层接口,为一组接口提供一致的外观。
  • Flyweight:大量细粒度共享
  • Proxy:代理控制

行为型:

  • chain of Responsibility:传递请求、职责、链接。将对象链接起来,请求在链中传递,直到找到处理的对象。
  • Command:日志记录、可撤销操作。
  • Interpreter:解释器,虚拟机。
  • Iterator:顺序访问,不爆露内部。
  • Mediator:不直接引用。
  • Memento:保存,回复。
  • Observer:通知,自动更新。
  • State:状态变成类。
  • Strategy:算法替换
  • Visitor:数据和操作分离
  • Template Method:定义了算法骨架,详细步骤子类,达到不改变算法结构重定义算法步骤。

十一 面向对象技术(考点篇)试题_UML_12

C,C,B。实际答案:B,C,D

面向对象有分析模型、数据模型、用例模型;而分析模型中顶层架构图是结构、用例是数据。

十一 面向对象技术(考点篇)试题_设计模式_13


面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成



十一 面向对象技术(考点篇)试题_面向对象技术_14

D ,C,A,D。蒙对了。


设计模式包括:创建型、结构型、行为型三大类别。 Singleton是单例模式,属于创建型设计模式。Adapter是适配器模式,属于结构型设计模式。Visitor 是访问者模式,属于行为型设计模式。


十一 面向对象技术(考点篇)试题_面向对象技术_15

C,C,D。实际B,C,D


面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。


十一 面向对象技术(考点篇)试题_设计模式_16

C,D,D,B。实际答案:C,D,C,D。还是要熟悉23中模式的名字和主要是干啥的

十一 面向对象技术(考点篇)试题_面向对象技术_17

A。会员注册,必须要先干电话注册或者是邮件注册。实际选C。


泛化关系是从另一个角度来看的继承关系,也就是说,当两个用例之间可能存在父子关系时,可判 定为泛化关系。在本题中,“电话注册”与“邮件注册”都属于“会员注册”,他们是“会员注 册”的具体形式,所以存在父子关系,可判定为泛化关系。



十一 面向对象技术(考点篇)试题_UML_18

A,B

十一 面向对象技术(考点篇)试题_面向对象技术_19

十一 面向对象技术(考点篇)试题_UML_20

D ,C

  • 单一职责原则:设计目的单一的类。
  • 开放-封闭原则:对扩展开放,对修改封闭。李氏(Liskov)替换原则:子类可以替换父类。
  • 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
  • 接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
  • 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
  • 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解



  • 解释器(interpreter)模式。解释器模式属于类的行为型模式,描述了如何为语言定义 interpreter一个文法,如何在该语言中表示一个句子,以及如何解释这些句子,这里的“语言”是使用规定格式和语法的 代码。解释器模式主要用在编译器中,在应用系统开发中很少用到。
  • 策略(strategy) strategy模式。策略模式是一种对象的行为型模式,定义一系列算法,并将每一个算法封 装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,其目的是将行为和 环境分隔,当出现新的行为时,只需要实现新的策略类。
  • 中介者(mediator)模式。中介者模式是一种对象的行为型 mediator模式,通过一个中介对象来封装一系列 的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者对象的存在保证了对象结构上的稳定,也就是说,系统的结构不会因为新 对象的引入带来大量的修改工作。
  • 迭代器(iterator)模式。迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式支持以不同的方式遍历一个聚合对象,复杂的聚合可 用多种方法来进行遍历;允许在同一个聚合上可以有多个遍历,每个迭代器保持它自己的遍历状 态,因此,可以同时进行多个遍历操作。




十一 面向对象技术(考点篇)试题_UML_21

C ,B。桥接的抽象和实现分离。


本题考点是设计模式,不同的设计模式可以应用于不同的场景,在本题题干部分提到宣传产品有多 种表现形式,又有多种媒介,如果用一棵类树来表达,必然会带来“类爆炸”的问题,所以使用桥 接模式是合适的。桥接模式的最核心特点便是:将抽象部分与它的实现部分分离,使它们都可以独 立地变化。



十一 面向对象技术(考点篇)试题_面向对象技术_22

D ,B。答案:A,D。


UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联 UML性、交互机 制和指导原则等提供系统设计的信息。具体来说,就是指以下5个系统视图:


  • (1)逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分, 即类、子系统、包和用例实现的子集。
  • (2)进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构
  • (3)实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。 
  • (4)部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
  • (5)用例视图。用例视图是最基本的需求分析模型



十一 面向对象技术(考点篇)试题_面向对象技术_23

B,A。


针对题目给出的情况,公司的架构师决定采用“包装器外观”架构模式解决操作系统的差异问题。具体来说,服务端程序应该在包装器外观的实例上调用需要的方法,然后将请求和请求的参数发送 给操作系统API函数,调用成功后将结果返回。使用该模式提高了底层代码访问的一致 API性,但降低了 服务端程序的调用性能。




十一 面向对象技术(考点篇)试题_UML_24

C,B;A,B。答案:C,B;C,A

  • 1.实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息,例如,在线教育平台系统可以提取出学员类和课程类,它们都属于实体类。实体类通常都是永久性的,它们所具有的属 性和关系是长期需要的,有时甚至在系统的整个生存期都需要。实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型的转化中,一个参与者一般对应于实体类。通常可以从 SRS 中的那些与数据库表(需要 持久存储)对应的名词着 SRS手来找寻实体类。通常情况下,实体类一定有属性,但不一定有操作。
  • 2.控制类 控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转 化来的名词,例如,用例“身份验证”可以对应于一个控制类“身份验证器”,它提供了与身份验证相关的所有操作。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象(控制类 的实例)通常控制其他对象,因此,它们的行为具有协调性。控制类将用例的特有行为进行封装,控制对象的行为与特定用例的实现密切相关,当系统执行用例 的时候,就产生了一个控制对象,控制对象经常在其对应的用例执行完毕后消亡。通常情况下,控 制类没有属性,但一定有方法。
  • 3.边界类 边界类用于封装在用例内、外流动的信息或数据流。边界类位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。要寻找和定义边界类,可以检查用例模型,每个参与者和用例交互至少要有一个边界类,边界类使参与者能与系统交互。边界类 是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。常见的边界类有窗口、通信协 议、打印机接口、传感器和终端等。实际上,在系统设计时,产生的报表都可以作为边界类来处 理。边界类用于系统接口与系统外部进行交互,边界对象将系统与其外部环境的变更(例如,与其他系 统的接口的变更、用户需求的变更等)分隔开,使这些变更不会对系统的其他部分造成影响。通常 情况下,边界类可以既有属性也有方法。


装饰模式:动态地给一个对象添加一些额外的职责。它提供了用子类扩展功能的一个灵活的替代, 比派生一个子类更加灵活。

在本题中,“现需要构造带有滚动条或者带有黑色边框,或者既有滚动条又有黑色边框的文本显 示控件和图片显示控件”,从此处可以看出需要能为构件灵活附加功能的机制,这与装饰模式的情况是吻合的。这样做比静态继承具有更大的灵活性。