软件设计师面向对象技术_第1页
软件设计师面向对象技术_第2页
软件设计师面向对象技术_第3页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 模拟 软件设计师面向对象技术选择题第 1 题:在面向对象系统中,用 系表示一个较大的“整体”类包含一个或多个较小的“部分”类。A. 泛化B. 聚合C. 概化D. 合成参考答案: B本题考查面向对象系统的基本概念。泛化是一种特殊 / 一般关系,特殊元素( 子元素 ) 的对象可替代一般元素 ( 父元素 ) 的对象。它描述整体和部分的关系。 聚合是整体和多个较小部分之间的关系。没有“概化”和“合成”的概念。因此 答案为 B。第 2 题:是指在运行时把过程调用和响应调用所需要执行的代码加以结合。A. 绑定B. 静态绑定C. 动态绑定D. 继承参考答案: C绑定是指将对象置于运行的状态,允许调用它所支

2、持的操作。根据其执行时间, 它分为两种: 静态绑定和动态绑定。 静态绑定是指在编译时进行绑定; 动态绑定 是在运行时进行绑定的。 (3) 是指把数据以及操作数据的相关方法组合在 同一个单元中, 使我们可以把类作为软件中的基本复用单元, 提高其内聚度, 降 低其耦合度。面向对象中的 (4) 机制是对现实世界中遗传现象的模拟,通 过该机制,基类的属性和方法被遗传给派生类。第 3 题:A. 封装B. 多态C. 继承D. 变异参考答案: A第 4 题:A. 封装B. 多态C. 继承D. 变异参考答案: C本题考查面向对象方法学的基本概念,是常考点。 封装是一种信息隐蔽技 术,其目的是把定义与实现分离,

3、 保护数据不被对象的使用者直接存取。 封装就 是将抽象得到的数据和行为相结合, 形成一个有机的整体, 即将数据和操作数据 的源代码进行有机结合,形成“类”。 多态性是指同一操作作用于不同对 象可以有不同的解释,产生不同的执行结果。 继承性是指在某个类的关联 中不同类共享属性和操作的一种机制。 一个父类可以有多个子类。 如果一个予类 只有唯一的父类,称为单一继承,如果一个子类拥有多个父类,称为多重继承。 据此可知答案为 A、 C。(5) 以静态或动态的连接方式,为应用程序提供一组可使用的类。 (6) 除了提供可被应用程序调用的类以外,还基本实现了一个可执行的架构。第 5 题:A. 函数库B. 类

4、库C. 框架D. 类属参考答案: B第 6 题:A. 函数库B. 类库C. 框架D. 类属参考答案: C本题考查面向对象方法学中的类和框架的概念。 函数库是程序员经常购买 那些包装成库的代码,在 C语言中,代码库就是函数库;出现 C+之后,函数库 转变为类库。 广义的类库是以库文件的形式存在, 库文件中包含了事先定义好的 类。二者的区别就是函数库只包含一系列的函数, 而类库是用面向对象的原理设 计的。 框架则是一种软件重用技术,它是一个应用软件系统的部分或整体的可重用设计, 具体表现为一组抽象类及其实例 (对象)之间的相互作用方式。 它 是对于一个软件系统的全部或部分的可重用设计。 明确了二者

5、的概念之后, 不难得出答案为 B、 C。第 7 题: 在选择某种面向对象语言进行软件开发时,不需要着重考虑的因素是,该语言A. 将来是否能够占据市场主导地位B. 类库是否丰富C. 开发环境是否成熟D. 是否支持全局变量和全局函数的定义参考答案: D任何一种面向对象的语言都会对变量和函数提供相应的处理机制, 因此不需要考 虑“是否支持全局变量和全局函数的定义”这一项。面向对象分析与设计中的 (8) 的,而在更改性方面应该是封闭的;而 出现在父类能够出现的任何地方。 第 8 题:A. 开闭原则B. 替换原则C. 依赖原则D. 单一职责原则是指一个模块在扩展性方面应该是开放(9) 是指予类应当可以替

6、换父类并参考答案: A第 9 题:A. 开闭原则B. 替换原则C. 依赖原则D. 单一职责原则参考答案: B本题考查面向对象设计的 5 大原则。 单一职责原则:对于一个类来说,应 该仅有一个引起它变化的原因,即一个类应该只有一个职责。如果有多个职责, 相当于这些职责耦合在一起。 因此在构造一个类时, 将类的不同职责分离在两个 或多个类中,确保引起该类变化的原因只有一个。 开放封闭原则:软件组 成实体应该是可扩展的, 但是不能修改的。 开放封闭法则认为我们应该在视图区 设计出永远也不需要改变的模块。 我们可以通过添加代码来扩展系统的功能, 但不能对已有的代码进行修改。 替换原则:子类应当可以替换

7、父类并出现在 父类能够出现的任何地方。依赖原则:在进行业务设计时,与特定业务有关的依赖关系应该尽量依赖接口和抽象类, 而不是依赖具体类。 具体类只负责相 关业务的实现,修改具体类不影响与特定业务有关的依赖关系。 接口分离 原则:采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的 接口要好。 根据以上分析,答案为 A、 B。在 UML的各种视图中, (10) 显示外部参与者观察到的系统功能; (11) 从系统的静态结构和动态行为角度显示系统内部如何实现系统的功能; (12) 显示的是源代码以及实际执行代码的组织结构。第 10 题:A. 用例视图B. 进程视图C. 实现视图D. 逻辑

8、视图参考答案: A第 11 题:A. 用例视图B. 进程视图C. 实现视图D. 逻辑视图参考答案: D第 12 题:A. 用例视图B. 进程视图C. 实现视图D. 逻辑视图参考答案: C本题考查的是 UML中 5 个系统视图的相关知识。逻辑视图是用来显示系统内部功能是怎样设计的,它利用系统的静态结构和动态行为来刻画系统的功能。 静态结构描述类、 对象和它们之间的关系等; 动态行为主要描述对象之间的动态 协作。 进程视图,又称并发视图,用来显示系统的并发工作状况。并发视 图将系统划分为进程和处理机方式, 通过划分引入并发机制, 利用并发高效地使 用资源、并行执行和处理异步事件。它是逻辑视图的一次

9、执行实例。 实现 视图,又称组件视图, 主要用来显示代码组件的组织方式, 主要描述了实现模块 和它们之间的相互关系。 部署视图是用来显示系统的物理结构,也就是系 统的物理展开。 例如:计算机和设备以及它们之间的连接方式, 而其中计算接和 设备都称之为节点。 用例视图是最基本的需求分析模型,以外部参与者的 角度来看待系统,它主要说明了准要使用系统,以及它们使用该系统的目的。第 13 题:采用 UML进行软件设计时,可用 关系表示两类事物之间存在的特殊 / 一般关系,用聚集关系表示事物之间存在的整体 / 部分关系。A. 依赖B. 聚集C. 泛化D. 实现参考答案: C本题考查面向对象系统的基本概念

10、。 泛化关系是一种一般 / 特殊关系,利用 这种关系,子类可以共享父类的结构和行为。在 UML类图中,类与类之间存在依赖 (Dependency) 、关联 (Association) 、聚 合(Aggregation) 、组合(Composition) 和继承 (Inheritance) 五种关系,其中, (14) 关系表明类之间的相互联系最弱, (15) 关系表明类之间的相互联 系最强,聚合 (Aggregation) 的标准 UML图形表示是(16) 。第 14 题:A. 依赖B. 聚合C. 组合D. 继承参考答案: A第 15 题:A. 依赖B. 聚合C. 组合D. 继承参考答案: D第

11、 16 题:A.B.C.D.参考答案: B本题考查面向对象方法学中的 UML,即统一建模语言。依赖关系是指有两个元素 A、B,如果元素 A的变化会引起元素 B的变化,则称元素 B依赖 (Dependency) 于元素 A。聚合关系 (Aggregation) 是关联关系的特例。聚合关系是表示一种整体和部分的关系。 如一个电话机包含一个话筒, 一个电脑包含显示器, 键盘 和主机等就是聚合关系的例子。 继承关系是指是父类和子类之间共享数据 和方法的一种机制。 在定义和实现一个类的时候, 可以在一个已经存在的类的基 础上进行,把这个类所定义的内容作为自己的内容,并添加新的内容即可实现。 关于图形表示

12、,教材上比较明确。(17) 限制了创建类的实例数量,而 (18) 将一个类的接口转换成客 户希望的另外一个接口, 使得原本由于接口不兼容而不能一起工作的那些类可以 一起工作。第 17 题:A. 命令模式 (Command)B. 适配器模式 (Adapter)C. 策略模式 (Strategy)D. 单例模式 (Singleton)参考答案: D第 18 题:A. 命令模式 (Command)B. 适配器模式 (Adapter)C. 策略模式 (Strategy)D. 单例模式 (Singleton)参考答案: B本题主要考查常见设计模式的特点。 命令模式把一个请求或者操作封装到一个对 象中,从

13、而达到用不同的请求对客户进行参数化的目标; 适配器模式把一个类的 接口变换成客户端所期待的另一种接口, 从而使原本因接口原因不匹配而无法一 起工作的两个类能够一起工作; 单例模式的意图是保证一个类仅有一个实例, 并 提供一个访问它的全局访问点; 策略模式可以将一个个算法封装起来, 并且可以 相互替换。已知某子系统为外界提供功能服务, 但该子系统中存在很多粒度十分小的类, 不便被外界系统直接使用, 采用 (19) 设计模式可以定义一个高层接口, 这 个接口使得这一子系统更加容易使用;当不能采用生成子类的方法进行扩充时, 可采用 (20) 设计模式动态地给一个对象添加一些额外的职责。 第 19 题

14、:A. Facade(外观 )B. Singleton( 单件 )C. Participant( 参与者 )D. Decorator( 装饰 )参考答案: A第 20 题:A. Facade(外观 )B. Singleton( 单件 )C. Participant( 参与者 )D. Decorator( 装饰 )参考答案: D本题考查的是设计模式。外观 (Facade): 为子系统中的一组功能调用提供一个一致的接口, 这个接口使得这一子系统更加容易使用; 装饰 (Decorate) :当 不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能; 单件 (Singleton): 保

15、证一个类仅有一个实例,并提供一个访问它的全局访问点; 模板方法 (Template Method): 在方法中定义算法的框架, 而将算法中的一些操作 步骤延迟到子类中实现。(21) 设计模式将抽象部分与它的实现部分相分离,使它们都可以独立地 变化。图 10.22 为该设计模式的类图, 其中, (22) 用于定义实现部分的接 口。第 21 题:A. Singleton( 单件 )B. Bridge( 桥接 )C. Composite( 组合 )D. Facade(外观)参考答案: B第 22 题:A. AbstractionB. ConcreteImplementorAC. ConcreteIm

16、plementorBD. Implementor参考答案: D本题考查面向对象方法学的设计模式。 设计模式是一套被反复使用、多数 人知晓、经过分类编目、代码设计经验的总结。 使用设计模式的目的就是 为了可重用代码,让代码更容易理解, 保证代码的可靠性。 单件(Singleton): 保证一个类仅有一个实例, 并提供一个访问它的全局访问点。 外观 (Facade): 为子系统中的一组功能调用提供一个一致的接口, 这个接口使得这一子系统更加 容易使用。 组合 (Composite) 模式:将对象组合成树型结构以表示“部分 - 整体”的层次结构, Composite 使得客户对单个对象和符合对象的使

17、用具有一致 性。桥接 (Bridge) 模式:将抽象部分与它的实现部分分离,使他们都可以独立的变化。第 21 空考查的是桥接设计模式,因此答案为 B。从题目中的类图可以看出,类 Abstraction 和类 Implementation 之间存在聚集关系 ( 整体和部分的关系 ) ,而 ConcreteImplementorA 和 ConcreteImplementorB 都是 整体类 Abstraction 类的部分类,所以中间的 Implementor 用于定义实现部分的 接口,因此 22 空答案为 D。开一闭原则 (Open-Closed Principle ,OCP是) 面向对象的可复

18、用设计的基石。 开一闭原则是指一个软件实体应当对 (23) 开放,对 (24) 关闭;里氏 代换原则 (Liskov Substitution Principle ,LSP)是指任何 (25) 可以出现 的地方, (26) 一定可以出现。依赖倒转原则 (Dependence Inversion Principle , DIP) 就是要依赖于 (27) 而不依赖于 (28) ,或者说要针 对接口编程,不要针对实现编程。第 23 题:A. 修改B. 扩展C. 分析D. 设计参考答案: B第 24 题:A. 修改B. 扩展C. 分析D. 设计参考答案: A第 25 题:A. 变量B. 常量C. 基类

19、对象D. 子类对象参考答案: C第 26 题:A. 变量B. 常量C. 基类对象D. 子类对象参考答案: D第 27 题:A. 程序设计语言B. 建模语言C. 实现D. 抽象参考答案: D第 28 题:A. 程序设计语言B. 建模语言C. 实现D. 抽象参考答案: C开一闭原则 (Open-Closed Principle) 可以说是面向对象设计的核心所在。开一 闭原则的两个重要特点是“对扩展开放,对修改关闭”,即允许对程序作出扩展 ( 以扩展的方式响应需求的变化 ) ,但拒绝对程序作出修改 ( 即修改之前运行良好 的程序) 。实现“开一闭原则”的重要机制就是“抽象”与“多态”。通过对“变 化

20、”进行抽象隔离,使程序具有更好的扩展性与可维护性。 里氏代换原则 (Liskov Substitution Principle,LSP)在实现继承时,子类 (subtype) 必须能替换掉它们的基类 (base type) 。如果一个软件实体使用的是基类的话,那么也 一定适用于子类;但反过来的代换不成立。 依赖倒转原则 (Dependence Inversion Principle,DIP) 是指在进行业务设计时,与特定业务有关的依赖关系应该尽量依赖接口和抽象类, 而不是依赖具体类。 具体类只负责相关业务的实 现,修改具体类不影响与特定业务有关的依赖关系。(29) 是一种很强的“拥有”关系,

21、“部分”和“整体”的生命周期通常一 样。整体对象完全支配其组成部分, 包括它们的创建和销毁等; (30) 同样 表示“拥有”关系,但有时候“部分”对象可以在不同的 “整体”对象之间共享, 并且“部分”对象的生命周期也可以与“整体”对象不同,甚至“部分”对象可 以脱离“整体”对象而单独存在。上述两种关系都是 (31) 关系的特殊种类。 第 29 题:A. 聚合B. 组合C. 继承D. 关联参考答案: B第 30 题:A. 聚合B. 组合C. 继承D. 关联10参考答案: A第 31 题:A. 聚合B. 组合C. 继承D. 关联参考答案: D本题考查 UML中关联关系。关联关系连接元素和链接实例,

22、它用连接两个模型元素的实线表示,在关联的两端可以标注关联双方的角色和多重性标记。 聚合关系是一种特殊类型的关联关系。 它描述元素之间部分和整体的关系, 即一 个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。 组合也 是关联关系的一种特例, 这种关系比聚合更强, 也称为强聚合; 它同样体现整体 与部分间的关系, 但此时整体与部分是不可分的, 整体的生命周期结束也就意味 着部分的生命周期结束。下面的 UML类图描绘的是(32) 设计模式。关于该设计模式的叙述中,错误的是 (33) 。第 32 题:A. 桥接B. 策略C. 抽象工厂D. 观察者参考答案: D第 33 题:A. 该设计模式中

23、的 Observer 需要维护至少一个 Subject 对象B. 该设计模式中的 ConcreteObserver 可以绕过 Subject 及其子类的封装C. 该设计模式中一个 Subject 对象需要维护多个 Observer 对象D. 该设计模式中 Subject 需要通知 Observer 对象其自身的状态变化 参考答案: B11 桥接模式将抽象部分和它的实现部分分离,使它们可以独立地变化。 策略 模式定义一系列的算法, 将每个算法封装到具有共同接口的独立的类中, 从而使 得算法可以相互替换,而不影响客户端。 抽象工厂模式提供一个创建一系 列相关或相互依赖对象的接口,而无需指定它们具体

24、的类。 观察者模式定 义对象间的一种一对多的依赖关系, 以便当一个对象的状态发生变化时, 所有依 赖于它的对象都得到通知并自动刷新。 ConcreteObserver 类继承于 Observer 类,而 Observer 与 Subject 之间相互依赖, 因此 ConcreteObserver 不 可以绕过 Subject 及其子类的封装。第 34 题: 以下关于面向对象方法中继承的叙述中,错误的是 。A. 继承是父类和予类之间共享数据和方法的机制B. 继承定义了一种类与类之间的关系C. 继承关系中的子类将拥有父类的全部属性和方法D. 继承仅仅允许单重继承,即不允许一个子类有多个父类参考答案

25、: D面向对象技术中, 继承是父类和子类之间共享数据和方法的机制。 这是类之间的 一种关系, 在定义和实现一个类的时候, 可以在一个已经存在的类的基础上来进 行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 可以存在多重继承的概念,但不同的程序设计语言可以有自己的规定。不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做 (35) 。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。 在一般的程序设计语言中, 绑定在编译时进行, 叫做 (36) ;而 (37) 则 在运行时进行,即一个给定的过程调用和执行代码的结合直到调用发生时才进行。 第 35 题:A

26、. 继承B. 多态C. 动态绑定D. 静态绑定参考答案: B第 36 题:A. 继承B. 多态C. 动态绑定D. 静态绑定12参考答案: D第 37 题:A. 继承B. 多态C. 动态绑定D. 静态绑定参考答案: C在收到消息时, 对象要予以响应。 不同的对象收到同一消息可以产生完全不同的 结果,这一现象叫做多态 (polymorphism) 。在使用多态的时候, 用户可以发送一 个通用的消息, 而实现的细节则由接收对象自行决定。 这样, 同一消息就可以调 用不同的方法。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的 过程。在一般的程序设计语言中, 绑定是在编译时进行的, nH做静态

27、绑定。 动态 绑定则是在运行时进行的, 因此,一个给定的过程调用和代码的结合直到调用发 生时才进行。 动态绑定是和类的继承以及多态相联系的。在继承关系中, 子类是父类一个特例, 所以父类对象可以出现的地方, 子类对象也可以出现。 因 此在运行过程中, 当一个对象发送消息请求服务时, 要根据接收对象的具体情况 将请求的操作与实现的方法进行连接,即动态绑定。第 38 题:不是面向对象分析阶段需要完成的。A. 认定对象B. 组织对象C. 实现对象及其相互关系D. 描述对象间的相互作用参考答案: C面向对象分析包含 5 个活动:认定对象、组织对象、描述对象间的相互作用、定 义对象的操作、定义对象的内部

28、信息。 实现对象及其相互关系应该归入到 系统的实现阶段,不属于分析阶段的任务。第 39 题: 以下关于面向对象设计的叙述中,错误的是 。A. 面向对象设计应在面向对象分析之前, 因为只有产生了设计结果才可对其 进行分析B. 面向对象设计与面向对象分析是面向对象软件过程中两个重要的阶段C. 面向对象设计应该依赖于面向对象分析的结果D. 面向对象设计产生的结果在形式上可以与面向对象分析产生的结果类似, 例如都可以使用 UML表达13参考答案: A面向对象分析与设计是面向对象软件开发过程中的两个重要阶段, 面向对象分析 产生分析模型,该分析模型可以使用 UML表达,面向对象设计以分析模型为基础, 继

29、续对分析模型进行精化,得到设计模型,其表达仍然可以采用UML建模语言。如下 UML类图表示的是 (40) 设计模式。以下关于该设计模式的叙述中, 错误是 (41) 。第 40 题:A. 工厂方法B. 策略C. 抽象工厂D. 观察者参考答案: C第 41 题:A. 提供创建一系列相关或相互依赖的对象的接口, 而无需指定这些对象所属 的具体类B. 可应用于一个系统要由多个产品系列中的一个来配置的时候C. 可应用于强调一系列相关产品对象的设计以便进行联合使用的时候D. 可应用于希望使用已经存在的类,但其接口不符合需求的时候参考答案: D题中的类图是抽象工厂设计模式, 该设计模式的意图是提供一个创建一

30、系列相关 或相互依赖对象的接口, 而无需指定它们具体的类。 使用抽象工厂设计模式的常 见情形是:一个系统要独立于其产品的创建、 组合和表示时; 一个系统要由多个 产品系列中的一个来配置时: 当需要强调一系列相关的产品对象的设计以便进行 联合使用时; 当提供一个产品类库, 而只想显示它们的接口而不是实现时。 对于 希望使用已经存在的类,但其接口不符合需求的情形,应当考虑桥接设计模式。UML类图中类与类之间的关系有五种:依赖、关联、聚合、组合与继承。若 类 A 需要使用标准数学函数类库中提供的功能, 那么类 A 与标准类库提供的类之 间存在 (42) 关系;若类 A中包含了其他类的实例,且当类 A

31、 的实例消失 时,其包含的其他类的实例也消失,则类 A 和它所包含的类之间存在 (43) 关系;若类 A的实例消失时, 其他类的实例仍然存在并继续工作, 那么类 A 和它14 所包含的类之间存在 (44) 关系 第 42 题:A. 依赖B. 关联C. 聚合D. 组合参考答案: A第 43 题:A. 依赖B. 关联C. 聚合D. 组合参考答案: D第 44 题:A. 依赖B. 关联C. 聚合D. 组合参考答案: CUML类图中类与类之间的关系有五种:依赖、关联、聚合、组合与继承。依赖是 几种关系中最弱的一种关系, 通常, 使用类库就是其中的一种关系。 聚合与组合 都表示了整体和部分的关系。 组合

32、的程度比聚合高, 当整体对象消失时, 部分对 象也随之消失,则属于组合关系; 当整体对象消失而部分对象依然可以存在并继 续被使用时,则属于聚合关系。第 45 题:以下关于类和对象的叙述中,错误的是 。A. 类是具有相同属性和服务的一组对象的集合B. 类是一个对象模板,用它仅可以产生一个对象C. 在客观世界中实际存在的是类的实例,即对象D. 类为属于该类的全部对象提供了统一的抽象描述参考答案: B15 类是具有相同属性和行为的一组对象的集合。 在现实世界中,每个实体都是对象, 每个对象都有它的属性和操作。 一个类定义了一组大体上相似的对象, 一个类所 包含的方法和数据描述了一组对象的共同行为和属

33、性。类是在对象之上的抽象, 对象是类的具体化, 是类的实例。 一个类可以产生多个对象。 因此可知选项 B 的 说法是错误的。(46) 是把对象的属性和服务结合成一个独立的系统单元,并尽可能隐藏 对象的内部细节; (47) 是指子类可以自动拥有父类的全部属性和服务; (48) 是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输 入信息和应答信息等。第 46 题:A. 继承B. 多态C. 消息D. 封装参考答案: D第 47 题:A. 继承B. 多态C. 消息D. 封装参考答案: A第 48 题:A. 继承B. 多态C. 消息D. 封装参考答案: C在基本的面向对象的系统中, 对象是基

34、本的运行时的实体, 它既包括数据 ( 属性) , 也包括作用于数据的操作 (行为) 。所以,一个对象把属性和行为封装为一个整体, 封装是一种信息隐蔽技术, 它的目的是使对象的使用者和生产者分离, 使对象的 定义和实现分开。 继承是父类和子类之间共享数据和行为的机制。在定义 和实现一个类的时候, 可以在一个已经存在的类的基础上, 把这个已经存在的类 所定义的内容作为自己的内容, 并加入新的内容。 继承可以使子类拥有父类的全16 部属性和服务。 对象之间进行通信的一种机制叫做消息。当一个消息发送 给某个对象时, 包含要求接收对象去执行某些活动的信息, 接收到信息的对象经 过解释,予以响应, 这种通

35、信机制叫做消息传递。 消息内容一般包含提供服务的 对象标识、服务标识、输入信息和应答信息等。第 49 题:以下关于面向对象设计的叙述中,错误的是 A. 高层模块不应该依赖于底层模块B. 抽象不应该依赖于细节C. 细节可以依赖于抽象D. 高层模块无法不依赖于底层模块参考答案: D在面向对象的设计中, 存在依赖倒置原则: 高层模块不应该依赖低层模块。 两个 都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。采用 (50) 设计模式可保证一个类仅有一个实例; 采用 (51) 设计 模式可将对象组合成树型结构以表示 “部分一整体” 的层次结构, 使用户对单个 对象和组合对象的使用具有一致性; 采用

36、 (52) 设计模式可动态地给一个对 象添加一些额外的职责。第 50 题:A. 命令 (Command)B. 单例 (Singleton)C. 装饰 (Decorate)D. 组合 (Composite)参考答案: B第 51 题:A. 命令 (Command)B. 单例 (Singleton)C. 装饰 (Decorate)D. 组合 (Composite)参考答案: D第 52 题:A. 命令 (Command)B. 单例 (Singleton)17C. 装饰 (Decorate)D. 组合 (Composite)参考答案: C本题考查面向对象方法学的设计模式。命令模式 (Command把

37、) 一个请求或者操作 封装到一个对象中, 从而达到用不同的请求对客户进行参数化的目标; 单例模式 (Singleton) 的意图是保证一个类仅有一个实例,并提供一个访问它的全局访问 点;装饰 (Decorate) 是在不能采用生成子类的方法进行扩充时, 动态地给一个对 象添加一些额外的功能; 组合 (Composite) 模式将对象组合成树型结构以表示 “部 分一整体”的层次结构, Composite 使得客户对单个对象和符合对象的使用具有 一致性。下列 UML类图表示的是 (53) 设计模式。该设计模式中 (54) 。第 53 题:A. 备忘录 (Memento)B. 策略 (Strateg

38、y)C. 状态(State)D. 观察者 (Observer)参考答案: D第 54 题:A. 一个 Subj ect 对象可对应多个 Observer 对象B. Subject 只能有一个 ConcreteSubject 子类C. Observer 只能有一个 ConcreteObserver 予类D. 一个 Subject 对象必须至少对应一个 Observer 对象 参考答案: A本题考查行为设计模式。 (1) 备忘录模式 (Memento Pattern) 应用于保存和 跟踪对象的状态, 以便于必要的时候可以把对象恢复到以前的状态。 备忘录模式 (Memento Pattern) 可以

39、在不暴露对象的内部结构的情况下完成这样的功能。(2) 策略模式是对算法的包装,把使用算法的责任和算法本身分隔开,委派给不 同的对象管理。 策略模式通常把一系列的算法包装到一系列的策略类里面, 作为 一个抽象策略类的子类。 简单地说, 就是把会变化的内容取出并封装起来, 以便 以后可以轻易地改动或扩充部分, 而不影响不需要变化的其他部分。 (3) 状 态模式可以有效地替换充满在程序中的 if.else 语句,将不同条件下的行为封18 装在一个类里面, 再给这些类一个统一的父类来约束他们。 (4) 观察者模式 假定保存数据的对象和显示数据的对象是分开的, 负责显示数据的对象观察保存 数据对象中的改

40、变。当我们要实现 Observer 模式时,通常将数据对象作为目标 (Subject) , 各个显示数据的对象作 为观察者 (Observer) 。 每一个观察者 (Observer) 通过调用目标 (Subject) 中的一个公有 (public) 方法,在他所感兴趣 的数据中注册自己。这样,当数据改变时,每一个目标 (Subject) 通过观察者 (Observer) 的接口发送更新通知。 综上所述,本题 UML类图表示的显然是 观察者设计模式。 观察者模式定义的是一种一对多的依赖关系, 让多个观察者对 象同时监听某一个主题对象。 这个主题对象在状态上发生变化时, 会通知所有观 察者对象,

41、使它们能够自动更新自己。所以第 47题选项 A正确。第 55 题: 下面关于面向对象分析与面向对象设计的说法中,不正确的是 A. 面向对象分析侧重于理解问题B. 面向对象设计侧重于理解解决方案C. 面向对象分析描述软件要做什么D. 面向对象设计一般不关注技术和实现层面的细节参考答案: D面向对象开发过程的核心是面向对象分析 (OOA)和面向对象设计 (OOD)两个阶段, 但二者的界限比较模糊。 OOA是分析使用实例,提取用户需求,建立问题域逻辑 模型的过程; OOD是建立面向对象的求解域模型的过程。从 OOA到 OOD实际是一 个多次反复、逐步迭代模型的过程。 面向对象分析是采用面向对象思路进

42、 行需求分析建模的过程。面向对象的分析模型主要有用例模型、类 / 对象模型、 对象一关系模型和对象一行为模型等。 面向对象设计直接继承面向对象分析阶段 的类图和交互图等分析结果, 然后确定每个类内部的数据和方法, 以及每个方法 的处理算法、过程和接口等。因此 D 选项是错误的。在面向对象分析与设计中,(56) 是应用领域中的核心类,一般用于保存系统中的信息以及提供针对这些信息的相关处理行为; (57) 是系统内对 象和系统外参与者的联系媒介;(58) 主要是协调上述两种类对象之间的交互。第 56 题:A. 控制类B. 边界类C. 实体类D. 软件类参考答案: C第 57 题:19A. 控制类B

43、. 边界类C. 实体类D. 软件类参考答案: B第 58 题:A. 控制类B. 边界类C. 实体类D. 软件类参考答案: A实体类 (entity class) 是应用领域中的核心类, 一般是从现实世界中的实体对象 归纳和抽象出来的, 用于长期保存系统中的信息, 以及提供针对这些信息的相关 处理行为。一般情况下,实体类的对象实例和应用系统本身有着相同的生命周期。 边界类 (boundary class) 是系统内的对象和系统外的参与者的联系媒体, 外界的 消息只能通过边界类的对象实例才能发送给系统。控制类 (control class)是实体类和边界类之间的润滑剂, 是从控制对象中归纳和抽象出

44、来的, 用于协调 系统内边界类和实体类之间的交互。若类 A仅在其方法 Methodl 中定义并使用了类 B的一个对象, 类 A其他部分 的代码都不涉及类 B,那么类 A与类 B 的关系应为 (59) ;若类 A 的某个属 性是类 B的一个对象,并且类 A对象消失时, 类 B对象也随之消失, 则类 A与类 B 的关系应为 (60) 。第 59 题:A. 关联B. 依赖C. 聚合D. 组合参考答案: A第 60 题:A. 关联B. 依赖C. 聚合D. 组合20参考答案: B关联体现的是两个类、 或者类与接口之间语义级别的一种强依赖关系; 这种关系 比依赖更强,不存在依赖关系的偶然性, 关系也不是临

45、时性的, 一般是长期性的, 而且双方的关系一般是平等的, 关联可以是单向、 双向的; 表现在代码层而为被 关联类 B以类属性的形式出现在关联类 A中,也可能是关联类 A 引用了一个类型 为被关联类 B的全局变量。 当对象 A被加入到对象 B 中,成为对象 B的组 成部分时, 对象 B和对象 A之间为聚合关系。 聚合是关联关系的一种, 是较强的 关联关系, 强调的是整体与部分之间的关系。 聚合是关联关系的一种特例, 它体 现的是整体与部分、拥有的关系,即 has a 的关系,此时整体与部分之间是可分 离的,它们可以具有各自的生命周期, 部分可以属于多个整体对象, 也可以为多 个整体对象共享。 对

46、于两个相对独立的对象,当一个对象负责构造另一个 对象的实例, 或者依赖另一个对象的服务时, 这两个对象之间主要体现为依赖关 系。就是一个类 A 使用到了另一个类 B,而这种使用关系是具有偶然性的、临时 性的、非常弱的,但是 B类的变化会影响到 A;表现在代码层面,为类 B 作为参 数被类 A在某个 method 方法中使用。组合也是关联关系的一种特例, 它体现的是一种 contains-a 的关系,这种关系比聚合更强,也称为强聚合;它同样 体现整体与部分间的关系, 但此时整体与部分是不可分的, 整体的生命周期结束 也就意味着部分的生命周期结束。当不适合采用生成子类的方法对已有的类进行扩充时,可以采用 (61) 设计模式动态地给一个对象添加一些额外的职责; 当应用程序由于使用大量的对 象,造成很大的存储开销时, 可以采用 (62) 设计模式运用共享技术来有效 地支持大量细

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论