1243编号设计模式习题

上传人:玩*** 文档编号:146937121 上传时间:2020-10-05 格式:PDF 页数:14 大小:137.67KB
返回 下载 相关 举报
1243编号设计模式习题_第1页
第1页 / 共14页
1243编号设计模式习题_第2页
第2页 / 共14页
1243编号设计模式习题_第3页
第3页 / 共14页
1243编号设计模式习题_第4页
第4页 / 共14页
1243编号设计模式习题_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《1243编号设计模式习题》由会员分享,可在线阅读,更多相关《1243编号设计模式习题(14页珍藏版)》请在金锄头文库上搜索。

1、设计模式习题设计模式习题 1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B 不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换 D 都不是 3、Open-Close 原则的含义是一个软件实体( a ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( a ) 模式。 A.创建型 B.结构型 C 行为型 D.以上都可以 5、要依赖于抽象,不要依赖于具体。即针

2、对接口编程,不要针对实现编程,是( d )的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。 A,委派 B.继承 C 创建 D.以上都不对 复用方式:继承和组合聚合(组合委派) 7、设计模式的两大主题是( d ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 8、单子模式中,两个基本要点( a b )和单子类自己提供单例 A.构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对 9、下列模式中,属于行为模式的是( b ) A.工厂模式 B 观

3、察者 C 适配器 以上都是 10、“不要和陌生人说话” 是( d )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对象 尽可能少的了解 11、构造者的的退化模式是通过合并( c )角色完成退化的。 A.抽象产品 B 产品 C 创建者 D 使用者 12、单子(单例,单态)模式类图结构如下: 下列论述中,关于”0.1”表述的不正确的是( d ) A.1 表示,一个单例类中,最多可以有一个实例. B.”0.1”表示单例类中有不多于一个的实例 C.0 表示单例类中可以没有任何实例 D.0 表示单例类可以提供其他非自身的实例 13、对象适配器模式是( a )原则的

4、典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则 14、静态工厂的核心角色是(a) A.抽象产品 B.具体产品 C.静态工厂 D.消费者 15、下列关于静态工厂与工厂方法表述错误的是:( a ) A.两者都满足开闭原则:静态工厂以 if else 方式创建对象,增加需求的时 候会修改源代码 B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点 在工厂方法中 C.不能形成静态工厂的继承结构 D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过 相应等级结构的工厂创建的。 16、在观察者模式中,表述错误的是( c ) A.观察者角

5、色的更新是被动的。 B.被观察者可以通知观察者进行更新 C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观 察者的状态进行。 D.以上表述全部错误。 17.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:( d ) A.创建一个新的抽象类 C,作为两个具体类的超类,将 A 和 B 共同的行为移 动到 C 中,从而解决 A 和 B 行为不完全一致的问题。 B.将 B 到 A 的继承关系改组成委派关系。 C.区分是“IS-a”还是”Hasa”。如果是“Is-a”,可以使用继承关系, 如果是”Hasa”应该改成委派关系 D.以上方案错误 18.对象组合的有点表述不当的

6、是( d ) A.容器类仅能通过被包含对象的接口来对其进行访问。 B.“黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。 C.通过获取指向其它的具有相同类型的对象引用, 可以在运行期间动态地定义(对象的)组合 D.造成极其严重的依赖关系。 19.关于继承表述错误的是:( d ) A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。 B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类) 则通过附加属性和方法来进行实现的扩展。 C.破坏了封装性,因为这会将父类的实现细节暴露给子类。 D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。 20.对于

7、依赖倒转的表述错误的是( e ) A.依赖于抽象而不依赖于具体,也就是针对接口编程。 B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调 用时,所知道的方法集合。 C.从选项 B 的角度论述,一个对象可以有多个接口。 D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知 道所示用的对象是那个实现类的实例。 E.此题没有正确答案。 21.面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以 及 (依赖倒转),(迪米特法则),(单一原则),(接口隔离?)。 22.在存在继承关系的情况下,方法向(超类)方向集中,而数据向(子类)方 向集中。 23.适配

8、器模式,分为类的适配器和对象的适配器两种实现。 其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合 聚合)关系。 24.设计模式的基本要素有 (名字 ), (意图 ), (问题 ), ( 解决方案 ), (参 与者与协作者 ),(实现),(一般性结构)。 25.创立型模式的根本意图是要把 (对象的创建) 和 (使用分离) 的责任进行分离, 从而降低系统的(耦合度)。 26.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型 27.门面模式是(迪米特)法则的典型运用 28.MVC 模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式 29.设计模式的思想根源是(开

9、闭)基本原则的宏观运用,本质上是没有任何模式 的, 发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠. UML、设计模式(测试题) 不定项选择题: 1一个软件产品是否成功,因素有( )。 l 需求收集是否正确 l 体系结构的构建是否合理 l 测试是否完全 l 软件的管理 2开发过程中最困难的一个环节是( )。 人与人之间的交流 3用例是从( 用户 )的观点对系统行为的一个描述。 4顺序图所表达的是基于( 时间顺序 )的动态交互。 5当需要在项目中定制自己的元素时,可使用( 构造型来定制 )。 6表示一个操作中的参数和返回值的数据类型的称呼是(形构 )。 7多重性 5,10 表示( 5

10、 或者 10 )。 8在找出了类的继承关系后,通常可以用( 接口 )来表示最上层的基类。 9 UML 中的实现是一种特殊类型的继承, 因为它是指从一个 ( 接口 ) 继承。 10使用用例的难点在于( 用例中各个场景的具体步骤 )。 11收集用例的方法是( 交谈 )。 12产生类图和得到用例这两个步骤,位于前面的是(没有固定顺序 )。 13 面向对象理论中, 对象之间发送信号, 在 UML 状态图里就是 ( 事件 )。 14顺序图中,动态创建对象表示法的特点是(是在时间线上的某一点创建,结 束时尾部打 X)。 15当代软件工程的特点是( )。 l 允许各个阶段进行迭代 l 各个阶段没有明显的分界

11、线 l 允许后期得到的信息返回,使得早期的能够被修改 。 16GRAPPLE 中最重要的段是( )。 l 需求收集 l 需求分析 l 用例开发 l 编码 l 测试 17设计模式的基本要素有( 名称,目的(意图),解决方案,实施后达到的 效果 )。 18当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用 ( 创建性 )模式。 19当我们想将抽象部分和实现部分分离时,可以使用( 桥接 )模式。 20 当我们想用不同的请求对客户进行参数化时, 可以使用 ( 命令 ) 模式。 21当我们想封装不同算法并使它们可相互替换时,可以使用( 策略 )模 式。 22面向对象系统中功能复用的两种最常用技

12、术是( )。 l 对象组合(优先使用) l 类继承(限制使用类继承)-产生类爆炸 23面向对象系统中的“黑盒复用”是指( 对象组合 )。 24对象组合是通过获得( 抽象类的指针 )而在运行时刻动态定义的。 25设计模式中应优先使用的复用技术是( 对象组合 )。 26在 Lexi 系统中,我们把所有文档元素都看作是图元,这样,它们就有了相 同的( 接口(也叫类型) )。 27Lexi 系统中,我们之所以能对文档采用 Composite 模式,是因为文档的元 素之间有 ( 递归(树型结构) )关系。 填空题: 1软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述 活动 , 也不描述

13、 系统怎样开发 , 它只描述系统的 组成元 素 及其相互的 交互协作 。 2一个 UML 模型只描述了一个系统 要做什么 ,它并没告诉我们系统 是 怎么做 。 3接口是可以在整个模型中反复使用的一组行为,是一个没有 属性 而只 有 方法 的类。 4多重性指的是,某个类有 多个个对象可以和另一个类的 1 个 对象关联。 5当一个类的对象可以充当多种角色时, 自身 关联就可能发生。 6 在泛化关系中, 子类 可以替代父类 。 也就是说, 后者出现的地方, 前者都可以出现。但是反过来却不成立。 7最通常的依赖关系是一个类操作的 形构 中用到了 另一个类 的定义。 8组成是 强类型 的聚集,因为聚集中

14、的每个部分体只能属于 一个 整体。 9实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用 虚线 表示,继承关系用 实线 表示。 10UML 背后的两个重量级概念是 用例 和 面向对象 。 11状态图和类图、顺序图不同之处在于,后两种图能够对 多个对象 建立模型,而状态图只是对 1 个对象 建立模 型。 12状态图中 3 个常用的动作是 入口动作 、 出口动作 和 do 动作,也就是对象处于这个状态时应该做什么 。 13顺序图中,消息用 水平箭头线 表示;时间用 垂直虚线 表示。 14当逻辑发生分支时,在顺序图中用 生命线发生的分支 表示,在协作图中用 嵌套的序号 表示。 15 顺序图

15、强调的是交互的 时间顺序 ,协作图强调的是交互的 空间 关系 和参与交互的对象的 上下文环境 。 16GRAPPLE 把开发过程分为 5 个 段 ,之中又由许多 动作 组成。 17GRAPPLE 过程中,得到初步类图是在(需求收集)段,细化类图是在(需求 分析)段。 18每一个设计模式都集中于一个特定的(设计问题 ),描述了(相互通信的 对象或者类)以及(解决方案)和(解决效果)。 19面向对象系统中功能复用的两种最常用技术是(对象组合)和(类继承 )。 20设计模式中应优先使用(对象组合)而不是(类继承)。 简答题 1 类图在 UML 中有何重要作用? 答: 1.为开发人员提供这种模仿现实世界的表达方式。 2.让分析员使用客户所采用的术语和客户交流, 促使客户说出所要解决的问题的 重要细节。 2阐述用例对于系统开发人员来说的价值。 答:是用来从用户的观察角度收集系统需求的一项技术,便于分析员与客户和用 户交流,使系统更符合用户的需求 3.简述如何在实际工作中发现类。 答:在与客户的交谈中,要注意

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 心得体会

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号