2013年设计模式期末复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计模式期末复习题
1、以下哪个模式是利用一个对象,快速地生成一批对象:()
A.抽象工厂(Abstract Factory)模式
B.组合(Composite)模式
C.原型(Prototype)模式
D.桥接(Bridge)模式
2、要针对接口编程,不要针对实现编程是()原则的一种表述。
A.里氏代换
B. 依赖倒转
C.接口隔离
D.迪米特
3、“不要和陌生人说话” 是( )原则的通俗表述
A.开闭
B.里氏代换
C.合成复用
D.迪米特
4、关于继承表述错误的是:()
A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加属性和方法来进行实现的扩展。
C.破坏了封装性,因为这会将父类的实现细节暴露给子类。
D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类
5、当想使用一个已经存在的类,但其接口不符合需求时,可以采用()设计模式将该类的接口转换成我们希望的接口
A. 命令(Command)
B. 适配器(Adapter)
C.装饰(Decorator)
D.桥接(Bridge)
6、对于依赖倒转的表述错误的是()
A.依赖于抽象而不依赖于具体,也就是针对接口编程。
B.依赖倒转的接口并非语法意义上的接口,而是一个类对其他对象进行调用时,所知道的方法集合。
C.从选项B的角度论述,一个对象可以有多个接口。
D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不
必知道所示用的对象是那个实现类的实例。
E.此题没有正确答案。
7、Java的异常处理机制可理解为哪一种行为模式。
A.观察者(Observer)模式
B.迭代器(Iterator)模式
C.职责链(Chain of Responsibility)模式
D.策略(Strategy)模式
8、( )不是桥接模式所适用的场景
A. 一个可以跨平台并支持多种格式的文件编辑器
B. 一个支持多数据源的报表生成工具,可以以不同图形方式显示报表信息
C. 一个可动态选择排序算法的数据操作工具
D. 一个可以支持多种编程语言的跨平台开发工具
9、下图描述了一种设计模式,该模式不可以()
A. 动态决定由一组对象中某个对象处理该请求
B. 动态指定处理一个请求的对象集合,并高效率地处理一个请求
C. 使多个对象都有机会处理请求,避免请求的发送者和接收者间的耦合
D. 将对象连成一条链,并沿着该链传递请求
10、在()时无须使用命令模式
A. 实现撤消操作和恢复操作
B. 将请求的发送者和接收者解耦
C. 不改变聚合类的前提下定义作用于聚合中元素的新操作
D. 在不同的时刻指定请求,并将请求排队
11. 中介者模式中通过中介者来将同事类解耦,这是()的具体应用。
A 迪米特法则
B 接口隔离原则 C里氏代换原则 D 合成复用原则
12、下面这句话隐含着()设计模式
我和妹妹跟妈妈说:“妈妈,我和妹妹在院子里面玩,饭做好了叫我们一声。“A. Facade(外观) B. Chain of Responsibility(职责链) C. Observer(观察者) D. Iterator(迭代器)
13、分析如下代码
public class Test {
int behaviour;
//Getter and Setter
.....
public void handleAll()
{
if(behaviour == 0) {
//do something
}else if(behaviour == 1) {
// do something
}else if(behaviour == 2) {
// do something
}else if(behaviour == 3) {
//do something
}
... some more else if...
}
}
为了提高代码的扩展性和健壮性,可以使用()设计模式来进行重构。
A. Visitor(访问者)
B. Facade(外观)
C. Memento(备忘录)
D. State(状态)
14、以下关于策略模式叙述错误的是()
A. 策略模式是对算法的包装,是把算法的责任和算法本身分隔开,委派给不同的对象管理
B. 在Context类中,维护了对各个ConcreteStrategy的引用实例,提供了一个接口供ConcreteStrategy存储数据
C. 策略模式让算法独立于使用它的客户而变化
D. 策略模式中,定义一系列算法,并将每一个算法封装起来,并让它们可以相互替换
15、场景()不是状态模式的实例。
A. 银行账户根据余额不同拥有不同的存取款操作
B. 游戏软件中根据虚拟角色级别的不同拥有不同的权限
C. 某软件在不同的操作系统中呈现不同的外观
D. 会员系统中会员等级不同可以实现不同的行为
、设计模式具有的优点()。
A.适应需求变化 B.程序易于理解
C.减少开发过程中的代码开发工作量 D.简化软件系统的设计
2. 下面属于结构模式的有()。
A观察者模式(Observer) B.单例模式(Singleton)
C.策略模式(Strategy) D外观模式(Façade)
3. Adapter(适配器)模式的意图是()。
A. 希望简化现有系统的使用方法。你需要定义自己的借口。
B.将一个无法控制的现有对象与一个特定借口相匹配。