JAVA设计模式复习资料
一、单项选择题
1.设计模式起源于
A、机械设计 B、建筑工程设计
C、水利工程设计 D、工业电力化设计
2.“不要和陌生人说话” 是 原则的通俗表述;
A、接口隔离 B、里氏替换 C、依赖倒置 D、迪米特
3.目前常见的设计模式主要有 种;
A、23 B、21 C、32 D、28
4.以下关于单一职责原则的叙述不正确的是 ;
A、单一职责原则的英文名称是Single Responsibility Principle.
B、单一职责原则要求一个类只有一个职责
C、单一职责原则有利于对象的稳定,降低类的复杂性
D、单一职责原则提高了类之间的耦合性
5.以下关于依赖倒置原则的叙述不正确的是
A、依赖倒置原则的简称是DIP
B、高层模块不依赖于低层模块,低层模块依赖于高层模块
C、依赖倒置原则中高层模块和低层模块都依赖于抽象
D、依赖倒置原则实现模块间的松耦合
6.下面关于单例模式说法错误的是
A、单例模式是指一个类只有一个实例
B、单例类从实现方式上分为懒汉式和饿汉式
C、单例类从功能上分为状态单例类和无状态单例类
D、可以通过继承的方式对单例类进行扩展得到功能更丰富的单例类
7.下面关于工厂方法模式说法错误的是 ;
A、工厂方法模式使一个类是实例化延迟到其子类中
B、工厂方法模式中具有抽象工厂、具体工厂、抽象产品和具体产品4个角
C、工厂方法模式可以处理多个产品的多个等级结构
D、工厂方法模式可以屏蔽产品类
8.在以下情况不适合使用责任职责链模式
A、有多个对象可以处理请求,哪个对象处理该请求在运行时刻自动确定;
B、在需要用比较通用和复杂的对象指针代替简单的指针的时候;
C、你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求;
D、一个请求需要一系列的处理工作;
9.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用 模式
A、结构型 B、创建型 C、行为型 D、以上都可以
10.以下用来描述适配器模式的是
A、表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作;
B、定义一个用于创建对象的接口,让子类决定实例化哪一个类;
C、将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;
D、动态地给一个对象增加一些额外的职责;
11.以下用来描述命令模式是
A、将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作;
B、定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化;
C、为其他对象提供一种代理以控制对这个对象的访问;
D、保证一个类仅有一个实例,并提供一个访问它的全局访问点;
12.以下关于创建型模式说法正确的是
A、创建型模式关注的是对象的创建方法
B、创建型模式关注的是功能的实现方法
C、创建型模式关注的是组织类和对象的常用方法
D、创建型模式关注的是对象间的协作
13.以下用来描述装饰模式的是
A、运用共享技术有效地支持大量细粒度的对象java单例模式懒汉和饿汉
B、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
C、将抽象部分与它的实现部分分离,使它们都可以独立地变化
D、动态地给一个对象添加一些额外的职责
14.不应该强迫客户依赖于它们不用的方法,是关于 的表述;
A、开-闭原则 B、接口隔离原则 C、里氏替换原则 D、依赖倒置原则
15.以下用来描述外观模式的是
A、为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;
B、定义一个用于创建对象的接口,让子类决定实例化哪一个类;
C、保证一个类仅有一个实例,并提供一个访问它的全局访问点;
D、在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态;样以后就可将该对象恢复到原先保存的状态;
16.以下意图哪个是用来描述桥梁模式
A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类;
B、将抽象部分与它的实现部分分离,使它们都可以独立地变化;
C、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;
D、动态地给一个对象添加一些额外的职责;
17.开闭原则的含义是一个软件实体
A、应当对继承开放,对实现关闭.
B、应当对修改开放,对扩展关闭
C、应当对扩展开放,对修改关闭
D、以上都不对
18.以下哪个用来描述建造者模式
A、定义一个用于创建对象的接口,让子类决定实例化哪一个类
B、保证一个类仅有一个实例,并提供一个访问它的全局访问点;
C、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;
D、运用共享技术有效地支持大量细粒度的对象;
19.以下哪个不属于设计模式的要素
A、模式名称 B、问题 C、因素 D、环境
20.以下不属于结构型模式的是
A、代理模式 B、工厂方法模式 C、适配器模式 D、享元模式
1-5 BDADB 6-10 DCBBC 11-15 AADBA 16-20 BCCCB
21.关于模式应用场景,在以下哪种情况适合使用组合模式
A、你想使用一个已经存在的类,而它的接口不符合你的需求;
B、当一个类的实例只能有几个不同状态组合中的一种时;
C、你想表示对象的部分-整体层次结构;
D、一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变行为;
22.Java的异常处理机制可理解为哪一种行为模式
A、观察者模式 B、迭代器模式
C、职责链模式 D、策略Strategy模式
23.当创建一个具体的对象而又不希望指定具体的类时,可以使用 模式;
A、结构型 B、创建型 C、行为型 D、以上都可以
24.以下哪个用来描述建造者模式
A、定义一个用于创建对象的接口,让子类决定实例化哪一个类
B、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;
C、保证一个类仅有一个实例,并提供一个访问它的全局访问点;
D、运用共享技术有效地支持大量细粒度的对象;
25.设计模式的两大主题是
A、系统的维护与开发 B、 对象组合与类的继承
C、系统架构与系统开发 D、系统复用与系统扩展
26.要依赖于抽象,不要依赖于具体,即针对接口编程,不要针对实现编程,是 的表述;
A、开闭原则 B、接口隔离原则
C、里氏替换原则 D、依赖倒置原则
27.以下意图哪个是用来描述桥梁模式
A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类;
B、将抽象部分与它的实现部分分离,使它们都可以独立地变化;
C、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;
D、动态地给一个对象添加一些额外的职责;
28.以下意图哪个是用来描述抽象工厂模式
A、提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类;
B、定义一个用于创建对象的接口,让子类决定实例化哪一个类;
C、将一个类的接口转换成客户希望的另外一个接口;
D、表示一个作用于某对象结构中的各元素的操作;
29.开闭原则的含义是一个软件实体
A、应当对扩展开放,对修改关闭.
B、应当对修改开放,对扩展关闭
C、应当对继承开放,对修改关闭
D、以上都不对
30. 对于违反里氏替换原则的两个类,可以采用的候选解决方案错误的是:
A、创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题;
B、将B到A的继承关系改组成委派关系;
C、区分是“Is-a”还是”Has-a”;如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系
D、以上方案错误
31.以下意图那个是用来描述ADAPTER适配器
A、将一个类的接口转换成客户希望的另外一个接口,本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;
B、定义一个用于创建对象的接口,让子类决定实例化哪一个类;
C、表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作;
D、将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作;
32.“不要和陌生人说话” 是 原则的通俗表述;
A、接口隔离 B、里氏替换 C、依赖倒置 D、迪米特
33.以下关于创建型模式说法正确的是
A、创建型模式关注的是对象的创建
B、创建型模式关注的是功能的实现
C、创建型模式关注的是组织类和对象的常用方法
D、创建型模式关注的是对象间的协作
34.关于模式适用性,在以下情况不适合使用享元模式
A、一个应用程序使用了大量的对象;
B、完全由于使用大量的对象,造成很大的存储开销;
C、对象的大多数状态都可变为外部状态;
D、你想使用一个已经存在的类,而它的接口不符合你的需求;
35.适配器模式是 原则的典型应用;
A、合成聚合复用原则 B、里氏替换原则
C、依赖倒置原则 D、迪米特法则
21-25. CCBBD 26-30.DBAAD 31-35.ADADA
二、填空题
1、设计模式分为____创建型___、____行为型_____、_____结构型______三大类型;
2、设计模式中的六个主要原则主要包括:单一职责原则、依赖倒置原则、___里氏替换原则____、____接口隔离原则___、迪米特法则和开闭原则;
3、设计模式中,对迪米特法则进行应用的设计模式有外观模式和____中介者模式_____;
4、__装饰模式 ____模式用于动态地给一个对象添加一些额外的职责;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论