11级_期末复习材料

  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)


D.组合模式(Composite) (D)
20.以下哪种设计模式最符合以下场景说明:
【军情的传递】
军队中军情的传递就是一个责任链,下属行动需要上级批准,所以要把行动计划报给上级,上级又传给上级,直至有人可以决定。一个士兵请求进入反恐行动组,他就会给班长发送请求,班长给排长,排长给连长,这样一直传到军长,由军长进行批准。

A.桥接模式(Bridge)

B.外观模式(Facade)
C.命令模式(Command)

D.责任链模式(Chain of Responsibility)

21.以下哪种设计模式最符合以下场景说明:(D)
【电视节目选择器】
电视提供了(creates)面板和遥控器两种节目选择方法,都具有“下一个”和“上一个”按钮来控制转到不同的频道。

A.责任链模式(Chain of Responsibility)
B.观察者模式(Observer)
C.模板方法模式(Template Method)

D.迭代器模式(Iterator)

22.以下哪种设计模式能够支持动态地给一个对象增加其他职责而且在职责整合时支持热插拔 (B)

A.桥接模式(Bridge)
B.装饰模式(Decorator)
C.享元模式(Flyweight)
D.外观模式(Facade)
23.关于设计模式本质的说法,以下哪个是正确的 (C)

A.设计模式利用类的继承来实现功能扩展
B.设计模式利用类的组合来实现功能扩展
C.设计模式就是在不修改原有类的基础上通过新增类来实现功能扩展或功能变更
D.设计模式就是利用类的继承和组合来实现功能扩展或功能变更
24.请说出以下是运用何种设计模式 (D)
abstract class AbstractFactory
{
public static AbstractFactory CreateFactory(string type)
{
AbstractFactory factory = null;
switch (type)
{
case ""Bmw"":
factory = new BmwFactory();
break;
case ""Audi"":
factory = new AudiFactory();
break;
}
return factory;
}

public abstract AbstractSportsCar CreateSportsCar();
public abstract AbstractBussinessCar CreateBussinessCar();
}

class BmwFactory : AbstractFactory
{
public override AbstractSportsCar CreateSportsCar()
{
return new Bmw.BmwSportsCar();
}

public override AbstractBussinessCar CreateBussinessCar()
{
return new

Bmw.BmwBussinessCar();
}
}



A.组合模式(Composite)
B.简单工厂模式(Simple Factory)
C.工厂方法模式(Factory Method)
D.抽象工厂模式(Abstract Factory)

25.以下哪个设计模式最符合以下的场景说明: (A)
1.能使客户端独立于产品的创建过程,并且在系统中引入新产品时无需对客户端进行修改。

A.工厂模式(Factory)
B.状态模式(State)

C.享元模式(Flyweight)
D.原型模式(Prototype)
26.以下哪个设计模式是着重于一步步构造一个复杂对象并且是最后步骤才将返回此对象 (C)

A.简单工厂模式(Simple Factory)
B.抽象工厂模式(Abstract Factory)

C.建造者模式(Builder)
D.单例模式(Singleton)
27.异常处理机制可理解为哪一种行为模式 (C)

A.观察者(Observer)模式
B.迭代器(Iterator)模式
C.职责链(Chain of Responsibility)模式
D.策略(Strategy)模式
28.Observer(观察者)模式适用于 (C)

A.当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用
B.当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变时
C.当一个对象必须通知其它对象,而它又不能假定其它对象是谁。也就是说你不希望这些对象是紧密耦合的
D.一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作
29.封装分布于多个类之间的行为的模式是 (C)

A.观察者(Observer)模式
B.迭代器(Iterator)模式
C.访问者(Visitor)模式
D.策略(Strategy)模式
30.结构型模式中最体现扩展性的几种模式是 (C)

A.适配器(Adapte)模式
B.合成(Composite)模式
C.装饰(Decorator)模式
D.桥接(Bridge)模式
31.常用的基本设计模式可分为 (A)

A.创建型、结构型和行为型
B.对象型、结构型和行为型
C.过程型、结构型和行为型

D.抽象型、接口型和实现型
32.以下关于创建型模式说法正确的是 (A)

A.创建型模式关注的是对象的创建
B.创建型模式关注的是功能的实现

C.创建型模式关注的是组织类和对象的常用方法
D.创建型模式关注的是对象间的协作
33.以下哪个模式是利用一个对象,快速地生成一批对象 (C)

A.抽象工厂(Abst

ract Factory)模式
B.合成(Composite)模式
C.原型(Prototype)模式
D.桥接(Bridge)模式
34.以下关于抽象工厂模式与建造者模式区别,说法不正确的是 (C)

A.建造者模式着重于一步步构造一个复杂对象;

B.建造者模式在最后一步返回产品;

C.抽象工厂中,产品是立即返回的
D.抽象工厂着重于单个的产品对象。
35.以下对于代理模式,说法不正确的是 (B)

A.虚拟代理:代理不会生成一个真实的耗费代理,直到非常有必要时(首次有请求0。用来存放花费大(实例化要很长时间)的真实对象。
B.远程代理:本地代理对象控制一个本地的对象。
C.安全代理:代理检查调用真实对象所需要的权限。
D.聪明代理:当调用真实的对象时,代理处理另外一些事。
36.抽象工厂模式的别名为 (C)

A.虚拟构造器模式
B.静态工厂模式
C.Kit模式
D.多态工厂模式
37.下列模式中,属于结构模式的是( B)。

A.抽象工厂模式
B.装饰模式
C.策略模式
D.建造者模式
38.下列关于静态工厂与工厂方法表述错误的是( A )。

A.两者都满足开闭原则:静态工厂以if else方式创建对象,增加需求的时候会修改源代码
B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中
C.不能形成静态工厂的继承结构
D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的
39.适配器模式是( A )原则的典型应用。

A.合成聚合复用原则
B.里氏代换原则
C.依赖倒置原则
D.迪米特法则
40.下列模式中,不属于创建模式的是(A )。

A.适配器模式
B.工厂方法模式
C.原型模式
D.以上都不是
二、多选题

1.当使用单件(单例)设计模式时,可以获得如下(A B C D)优点。

A.对唯一实例提供受控访问
B.缩小名称空间
C.允许对操作和表示进行精化操作
D.运行可变数目的类实例数
2.从模式所提供的功能性来看,模式可以分为( A C D )

A.创建模式
B.测试模式
C.行为模式
D.结构模式
3.以下属于面向对象的设计原则的有(A B C D )

A.迪米特原则
B.依赖倒转原则
C.接口隔离原则
D.无循环依赖原则(包图)
4.关于外观模式(Facade)说法正确的是?(A B)

A.提供一个统

一的接口去访问多个子系统的多个不同的接口。
B.提供了一个简单且公用的接口去处理复杂的子系统,并且没有减少子系统的功能。
C.限制了客户的自由,减少了可变性。
D.客户与抽象的实现类中存在若干依赖。
5.关于访问者模式(Visitor)的适用性以下哪些是正确的。(A B C )

A.一个对象的结构包含多个不同接口的对象,并且需要根据具体对象作不同的处理。
B.对结构中的对象有很多不同且没有联系的处理,因此需要避免操作将类分离。
C.类中定义的对象结构很少改变,但需要以常地定义处理结构的新操作。

D.需要对行为的算法作很多变动。
6.以下哪些设计模式都可以用来将抽象部分与实现部分分离 ( C )

A.适配器模式(Adapter)
B.装饰模式(Decorator)

C.桥接模式(Bridge)

D.代理模式(Proxy)
7.以下属于创建型模式的是 (A C)

A.抽象工厂(Abstract Factory)模式
B.合成(Composite)模式
C.单例(Singleton)模式
D.桥接(Bridge)模式

8.面向对象系统中功能复用的最常用技术是 (A B)

A.类继承
B.对象组合
C.使用抽象类
D.使用实现类
9.以下哪些问题通过应用设计模式能够解决 (A D)

A.指定对象的接口
B.排除软件BUG
C.确定软件的功能都正确实现
D.设计应支持变化

10.以下属于行为对象模式的是(A B C D)

A.模板(Template Method)模式
B.迭代器(Iterator)模式
C.命令(Command)模式

D.观察者(Observer)模式
11.在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。主要体现在 (A D)

A.适配器(Adapte)模式
B.合成(Composite)模式
C.原型(Prototype)模式
D.桥接(Bridge)模式
12.以下关于抽象工厂设计模式,说法正确的是 (A B C D)

A.提供一系列相互依赖对象的创建工作
B.封装对象常规的创建方法(new)
C.提供统一调用数据访问方法的方式
D.避免调用数据访问方法和具体对象创建工作的紧耦合

三、简答题

1.请简述下,继承在程序设计中,存在的缺陷?
答:因为在使用继承时,父类的任何改变都可能影响子类的行为,没有助于保持每个类的单一职责原则。

2.简述下,结构型模式一共有多少种,分别为哪些?代理模式、装饰模式和适配器模式,有什么区别,如何区分应用在具体事例中。并请举例说

明。
答:一共有7种,分别为组合模式、装饰模式、外观模式、享元模式、代理模式、适配器模式、桥接模式;

3.简述下,创建型模式一共有多少种,分别为哪些?工厂方法模式、抽象工厂模式与建造者模式,有什么区别,如何区分应用在具体事例中。并请举例说明。

4.您现负责通过文件操作的开发框架设计任务。经过调研后,您发现公司已经封装好一个类专门用于提供txt , XML , Word , Excel 文件操作的功能。为了使得开发框架能最大的程度的复用,您该如何设计您的开发框架。现提出几点技术意见:
1. 本框架提供对各类文件(txt , XML , Word , Excel)的通用读取和写入功能。
2. 在文件读写时,能支持字符转码和字符转字节这两个功能的热插拔。
3. 在文件读写时,能支持处理过程动作自定义,即:在文件读写正在进行中能加入业务功能。例如:每读取100个字节,则滚动条增加一格。
根据以上的说明,详细阐述该结合使用哪几种设计模式来实现以上的开发框架。


5.根据以下场景说明,请选用最佳的设计模式,并说明该设计模式的原理及其优缺点?

场景:你在淘宝网上开了一间个人网店,你与买家之间不是面对面的现金交易,而是通过淘宝网的支付宝系统进行电子货币虚拟交易。你网店的营业金额从支付宝里取,买家也把应支付的金额交给支付宝。


6.根据以下场景说明,请选用最佳的设计模式,并说明该设计模式的原理及其优缺点?

场景:你拿出上次旅行时所拍摄的个人写真照片,但你发觉你看来看去都不顺眼,于是你到礼品店买了个相框,结果你发现相框整体感还是达不到你的要求,所以你在相框上贴了一些小东西。经过你一番的努力,相框的整体感觉终于符合你的期望了。

7.根据以下场景说明,请选用最佳的设计模式,并说明该设计模式的原理及其优缺点?

场景:你与家人商量周末自驾一同前往海滩度假,以下是你和家人的对话.

妹妹:“我想把芭比娃娃带上车。”
我:“好好,还有呢?”
妈妈:“得把家里的个人日用品带上车。”
我:“好好,还有呢?”
爸爸:“车上得备上几瓶好酒。”
我:“好好,还有呢?”
........
到了周末,我把所有的东西一件一件装上车,一路颠簸终于到了海滩。



8.根据以下场景说明,请选用最合适的设计模式,并阐述该设计模式的原理及其优缺点?

场景:假设某天你请朋友吃饭,麦当劳

的鸡翅和肯德基的鸡翅都是朋友爱吃的东西,虽然口味有所不同,但不管你带朋友去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。





相关文档
最新文档