C. 减少开发过程中的代码开发工作量 D.简化软件系统的设计
2. 若系统中的某子模块需要为其它模块提供访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询,( D ) 设计模式可抽象出相同的数据库访问过程; A. 外观 B. 装饰 C. 单件 D. 模板方法
3. 系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类, ( B )设计模式可以实现该目的。 A. 外观 B. 装饰 C.单件 D. 模板方法
10.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( A)模式。 A.创建型 B.结构型 C行为型 D.以上都可以 11、设计模式的两大主题是( d )
A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展
12、单例模式中,两个基本要点( a b )和单子类自己提供单例 A .构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对
13、下列模式中,属于行为模式的是( b ) A.工厂模式 B观察者 C适配器 以上都是 14、对象适配器模式是( a )原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则 15、静态工厂的核心角色是(a)
A.抽象产品 B.具体产品 C.静态工厂 D.消费者 16、在观察者模式中,表述错误的是( c ) A.观察者角色的更新是被动的。 B.被观察者可以通知观察者进行更新
C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。 D.以上表述全部错误。
17、以下关于创建型模式说法正确的是 。 (A) A.创建型模式关注的是对象的创建 B.创建型模式关注的是功能的实现
C.创建型模式关注的是组织类和对象的常用方法 D.创建型模式关注的是对象间的协作 18.常用的描述设计模式的格式有(ABCD) 。 A.意图 B.动机 C.适用性 D.结构
19.以下关于结构型模式说法正确的是 (ACD)。
A.结构型模式可以在不破坏类封装性的基础上,实现新的功能。 B.结构型模式主要用于创建一组对象。 C.结构型模式可以创建一组类的统一访问接口
D.结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。 20.以下属于结构型模式的是(AB)。
A.代理(Proxy)模式 B.合成(Composite)模式 C.命令(Command)模式 D.观察者(Observer)模式
21.在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。主要体现在(AD)。 A.适配器(Adapte)模式 B.合成(Composite)模式 C.原型(Prototype)模式 D.桥接(Bridge)模式 22.结构型模式中最体现扩展性的几种模式是(BC)。 A.适配器(Adapte)模式 B.合成(Composite)模式 C.装饰(Decorator)模式 D.桥接(Bridge)模式 23.行为类模式使用( B )在类间分派行为。
A.接口 B.继承机制 C.对象组合 D.委托
24.以下属于行为对象模式的是 ( BCD )。
A.模板(Template Method)模式 B.迭代器(Iterator)模式 C.命令(Command)模式 D.观察者(Observer)模式 25.封装分布于多个类之间的行为的模式是( C ) 。 A.观察者(Observer)模式 B.迭代器(Iterator)模式 C.访问者(Visitor)模式 D.策略(Strategy)模式
26.利用继承来提供DUCK的行为,会导致下列那些缺点?(ABCD) A.代码在多个子类中重复 B.运行时的行为不容易改变
C.我们不能让鸭子跳舞D.改变会牵一发而动全身,造成其他鸭子不想要的改变
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、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( 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观察者 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 )原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则 14、静态工厂的核心角色是(a)
A.抽象产品 B.具体产品 C.静态工厂 D.消费者
15、下列关于静态工厂与工厂方法表述错误的是:( a )
A.两者都满足开闭原则:静态工厂以if else方式创建对象,增加需求的时候会修改源代码
B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中
C.不能形成静态工厂的继承结构
D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的。
16、在观察者模式中,表述错误的是( c ) A.观察者角色的更新是被动的。 B.被观察者可以通知观察者进行更新
C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。
D.以上表述全部错误。
17.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:( d )
A.创建一个新的抽象类C,作为两个具体类的超类,将A 和B 共同的行为移动到C 中,从而解决A和B 行为不完全一致的问题。 B.将B到A的继承关系改组成委派关系。
C.区分是“IS-a”还是”Has-a”。如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系
D.以上方案错误
18.对象组合的有点表述不当的是( d )
A. 容器类仅能通过被包含对象的接口来对其进行访问。
B. “黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。 C. 通过获取指向其它的具有相同类型的对象引用, 可以在运行期间动态地定义(对象的)组合
D.造成极其严重的依赖关系。 19.关于继承表述错误的是:( d )
A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。
C.破坏了封装性,因为这会将父类的实现细节暴露给子类。 D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。 20.对于依赖倒转的表述错误的是( e )
A.依赖于抽象而不依赖于具体,也就是针对接口编程。
B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调用时,所知道的方法集合。
C.从选项B的角度论述,一个对象可以有多个接口。
D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知道所示用的对象是那个实现类的实例。 E.此题没有正确答案。
21.面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及 (依赖倒转),(迪米特法则),(单一原则),(接口隔离?)。
22.在存在继承关系的情况下,方法向(超类)方向集中,而数据向(子类)方向集中。 23.适配器模式,分为类的适配器和对象的适配器两种实现。
其中类的适配器采用的是(继承)关系,而对象适配器采用的是(组合聚合)关系。 24.设计模式的基本要素有(名字 ),(意图 ),(问题 ),( 解决方案 ),(参与者与协作者 ),( 实现),(一般性结构)。
25.创立型模式的根本意图是要把(对象的创建)和(使用分离)的责任进行分离,从而降低系统的(耦合度)。
26.工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型 27.门面模式是(迪米特)法则的典型运用
28.MVC模型的基本工作原理是基于(观察者)模式,实现是基于(命令)模式