级期末复习材料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

级_期末复习材料

。1111

一、选择题(共40 题,80 分)

1.不要和陌生人说话”是(D )原则的通俗表述

A.接口隔离

B.里氏代换

C.依赖倒转

D.迪米特

2.当一个抽象模型有两个方面,其中一个方面依赖于另一方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用,可以考虑使用(A)

A.观察者模式

B.命令模式

C.适配器模式

D.单例模式

3.对于某些类来说,只有一个实例是非常重要的,例如,系统中可以有都种类型的打印机,但是只能有一个打印机假脱机,只应该一个文件系统和一个窗口管理器,为此,可以使用(C)。

A.工厂模式

B.享元模式

C.单例模式

D.外观模式

4.当需要支持日志修改时,可以考虑使用(A )

A.命令模式

B.工厂模式

C.单例模式

D.适配器模式

5.当需要在不同时刻指定、排列和执行请求是,可以考虑使用(A)。

A.命令模式

B.策略模式

C.适配器模式

D.责任链模式

6.在需要构建一个层次结构的子系统时,可以使用门面模式定义子系统中每层的入口点,可以考虑使用(A)。

A.外观模式

B.工厂模式

C.装饰模式

D.适配器模式

7.希望创建一个可复用的类,该类必须能够与接口不可预订的类协同工作,可以考虑使用(B)

A.桥接模式

B.适配器模式

C.工厂模式

D.装饰模式

8.在面向对象的原则中,(B)表示使用多个专门的接口比使用单一的总接口要好,一个类对另一个来的依赖性应当是建立在最小的接口上的。

A.单一责任原则

B.接口隔离原则

C.依赖倒转原则

D.迪米特原则

9.当需要强调一系列相关产品对象的设计以便进行联合使用,可以考虑使用(A)。

A.工厂模式

B.单例模式

C.建造者模式

D.原型模式

10.当客户程序与抽象类的实现部分之间存在很大的依赖性时,可以考虑使用(D)

A.单例模式

B.享元模式

C.工厂模式

D.外观模式

11.在设计模式中,(D)保证每个类只要单个实例。

A.工厂模式

B.外观模式

C.享元模式

D.单例模式

12.(C)是指以设计复用为目的,采用一种良好定义、正规的、一致的方式记录的软件设计经验。

A.架构

B.UML模型

C.设计模式

D.设计数据

13.在面向对象的的设计原则中,(A)表示高层模块不应该依赖于低层模块,

都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。

A.依赖倒转原则

B.开放封闭原则

C.迪米特原则

D.里氏替换原则

14.(A)将整个软件系统划分为模型、视图和控制器三个部分。

A.MVC

B.分层模式

C.管道模式

D.架构模式

15.在面向对象的设计原则中,(B)表示软件实体应当对扩展开放,对修改关闭,即软件实体应当在不修改的前提下扩展。

A.单一责任原则

B.开放封闭原则

C.里氏替换原则

D.迪米特原则

16.在设计模式中,(C)的核心是缓存和共享

A.门面模式

B.工厂模式

C.享元模式

D.单例模式

17.关于适配器模式(Adapter)说法正确的是(A)

A.将抽象部分与实现部分分离,使得它们两部分可以独立地变化

B.将一个接口转换成为客户想要的另一个接口。

C.组合多个对象形成树形结构以表示整体-部分的结构层次。其对单个对象和组合对象的使用具有一致性。

D.为其他对象提供一个代理或地方以控制对这个对象的访问。

18.迭代器模式(Iterator)模式适用于(B )

A.需要在不同的时间创建请求,生成请求队列,执行请求。

B.需要遍历访问聚集中的对象而不能暴露聚集中内部结构。

C.想避免抽象方法和其实现方法绑定在一起。

D.一组对象复杂地相互通信但其方法是定义明确的。19.请说出以下是运用何种设计模式(A)

abstract class Chess

{

public abstract void Display();

}

class BlackChess : Chess

{

public override void Display()

{

Console.WriteLine(""黑棋"");

}

}

class ChessFactory

{

public Hashtable chesses = new Hashtable();

public Chess GetChess(string key)

{

Chess chess = (Chess)chesses[key];

if (chess == null)

{

switch (key)

{

case ""黑"":

chess = new BlackChess();

break;

case ""白"":

chess = new WhiteChess();

break;

}

chesses.Add(key, chess);

}

return chess;

}

}

A.享元模式(Flyweight)

B.工厂模式(Factory)

C.备忘录模式(Memento)

相关文档
最新文档