2024年5月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、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( 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. 通过获取指向其它的具有相同类型的对象引用,