智慧树知到《设计模式与软件体系结构》章节测试答案Word文件下载.docx
- 文档编号:22024821
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:24
- 大小:26.47KB
智慧树知到《设计模式与软件体系结构》章节测试答案Word文件下载.docx
《智慧树知到《设计模式与软件体系结构》章节测试答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《智慧树知到《设计模式与软件体系结构》章节测试答案Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
名称
问题
解决方案
参与者和协作者
名称,问题,解决方案,参与者和协作者
6、常用的描述设计模式的格式有()。
意图
动机
适用性
结构
意图,动机,适用性,结构
7、“不要和陌生人说话”是迪米特原则的通俗表述。
对
对
8、依据设计模式思想,程序开发中应优先使用的是创建。
错
错
9、设计模式一般用来解决同一问题的不同表相。
10、学习设计模式可以缩短软件的开发周期。
第二章
1、以下关于创建型模式说法正确的是()。
创建型模式关注的是对象的创建
创建型模式关注的是功能的实现
创建型模式关注的是组织类和对象的常用方法
创建型模式关注的是对象间的协作
创建型模式关注的是对象的创建
2、当创建一个具体的对象而不希望制定具体的类时,可以使用()模式。
结构型
创建型
C:
行为型
复用型
创建型
3、当需要在项目中定制自己的元素时,可使用()模式来定制。
行为型
4、当应用工厂方法(FactoryMethod)模式时要考虑()。
主要有两种不同的情况
参数化工厂方法
特定语言的变化和问题
使用模板以避免创建子类
使用模板以避免
主要有两种不同的情况,参数化工厂方法,特定语言的变化和问题创建子类
5、工厂模式分为()3种类型。
简单工厂
工厂方法
抽象工厂
单例
简单工厂,工厂方法,抽象工厂
6、简单工厂模式可以根据参数的不同返回不同的实例。
7、工厂方法模式的主要角色有:
抽象工厂(AbstractFactory)、具体工厂(ConcreteFactory)、抽象产品(Product)和具体产品(ConcreteProduct)。
8、抽象工厂模式是简单工厂模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。
9、创建型模式把实例化的责任与使用实例的责任分割开来。
10、由于AbstractFactory类和具体工厂方法可以分离,因此在实现时会产生更多的类。
第三章
1、()可用来描述原型(Prototype)。
允许一个对象在其内部状态改变时改变它的行为。
对象看起来似乎修改了它的类。
表示一个作用于某对象结构中的各元素的操作。
它是你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
D
2、在()适合使用单例(Singleton)模式。
当一个类不知道它所必须创建的对象的类的时候
当一个类的实例只能有几个不同的状态组合中的一种时
当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时
当一个类希望由它的子类来指定它所创建的对象的时候
C
3、在()不适合使用原型(Prototype)模式。
当要实例化的类是在运行时刻指定是,例如通过动态装载
当要强调一系列相关的产品对象的设计以便进行联合使用时
为了避免创建一个与产品类层次平行的工厂类层次时
当一个类的实例只能有几个不同状态组合中的一种时
B
4、单例模式中,两个基本要点()和单子类自己提供单利。
静态工厂方法
动态工厂方法
AB
5、使用原型(Prototype)模式时要考虑的问题有()。
使用一个原型管理器
实现克隆操作
初始化克隆对象
用类动态配置应用
ABC
6、建造者模式包括:
()等主要角色。
产品角色(Product)
抽象建造者(Builder)
具体建造者(ConcreteBuilder)
指挥者(Director)
ABCD
7、单例模式分为懒汉式单例和饿汉式单例两种。
3个部分。
A
8、原型(Prototype)模式包含:
抽象原型类、具体原型类和访问者类等
A9、建造者的退化模式是通过省略使用者角色完成退化的。
10、懒汉式单例类在第一次被引用时将自己实例化。
第四章
1、用来描述适配器(Adapter)的意图是()。
将一个类的接口转换成客户希望的另外一个接口,本模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作
定义一个用于创建对象的接口,让子类决定实例化哪一个类
表示一个作用于某对象结构中的各元素的操作,它使用户可以在不改变各元素的类的前提下定义作用于这些元素的新操作
将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;
对请求排队或记录请求日志,以及支持可撤销的操作
2、关于模式适用性,不适合使用适配器(Adapter)模式的是()。
用户想使用一个已经存在的类,而它的接口不符合用户的需求
用户想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可
能不一定兼容的类)协同工作
用户想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。
对象适配器可以适配它的父类接口
如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象
3、对象的结构模式包括()。
代理人模式
合成模式
享元模式
装饰模式
4、适配器模式分为()2种。
类结构型模式
对象结构型模式
代理模式
组合模式
5、类适配器模式和对象适配器模式可用Java实现。
6、类结构型模式之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。
A7、适配器模式不可以模拟新能源汽车的发动机。
8、一个类的结构模式的典型例子就是类的适配器模式。
其是动态
9、对象的结构模式描述怎样把各种不同类型的对象组合在一起,以实现新的功能,的。
10、作为适配器模式的一个特例,缺省适配器模式在Java语言中有着特殊的应用。
第五章
1、以下哪一项可用来描述装饰(Decorator)()。
运用共享技术有效地支持大量细粒度的对象
将抽象部分与它的实现部分分离,使它们都可以独立变化
动态地给一个对象添加一些额外的职责
2、装饰(Decorator)模式不能用于下列那个选项()。
在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
处理那些可以撒销的职责
客户程序与抽象类的实现部分之间存在着很大的依赖性
当不能采用生成子类的方法进行扩充时。
一种情况是,可能有大量独立的扩展,每种组合将产生大量的子类,使得子类数目呈爆炸性增长。
另一种情况可能是类的定义被隐藏,或类定义不能用于生成子类
3、关于模式适用性,以下()不适合使用Composite(组合)模式。
用户想表示对象的部分-整体层次结构
当一个类的实例只能有几个不同状态组合中的一种时
一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为
4、以下意图()是用来描述组合(Composite)。
为其他对象提供一种代理以控制对这个对象的访问
将对象组合成树形结构以表示“部分-整体”的层次结构
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
5、根据合成模式中提供父类对象的管理方法所在位置,即实现接口的区别分为两种形式()。
透明方式
安全方式
模糊方式
继承方式
6、使用装饰模式时应注意()。
接口的一致性
省略抽象的Decorator类
保持Component类的简单性
装饰对象包含一个真实对象的引用
7、装饰器模式的优点是()。
装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性
装饰模式允许系统动态地决定贴上装饰,或者除掉一个不需要的装
饰,继承则不同,继承是静态的,它在系统运行前就决定了
通过使用不同的具体装饰类以这些装饰类的排列组合,设计师可以创造出很我不同行为的组合
这种比继承更加灵活机动的特性,也同时意味着装饰模式比继承更加容易出错
8、使用装饰模式会产生比使用继承关系更多的对象,更多的对象会使得查错变得困难,特别是这些对象看上去都很像。
9、需要增加由一个基本功能的排列组合而产生的非常大量的功能,从而使继承关系变得不现
实,此时可以使用装饰器模式。
10、需要扩展一个类的功能,或给一个类增加附加责任时可以使用装饰器模式。
1、关于模式适用性,以下情况不适合使用代理(Proxy)模式的是()
根据需要创建开销很大的对象
在需要用比较通用和复杂的对象指针代替简单的指针的时候
取代了简单的指针,它在访向对象时执行一些附加操作
2、以下意图用来描述代理(Proxy)的是()。
用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象
A3、代理模式的扩展是()。
动态代理模式
静态代理模式
多态代理模式
单态代理模式
4、如果有一个2MB的文本(英文字母),为了对其中的字母进行分类和计数,若为文本中的
每个字母都定义一个对象显然不合实际,对与该问题最好可使用的模式是()。
装饰(Decorator)模式
享元(Flyweight)模式
合成(Composite)模式
命令(Command模式
5、关于模式活用性,以下()不适合使用Flyweight(享元)模式。
一个应用程序使用了大量的对象
完全由于使用大量的对象,造成很大的存储开销
对象的大多数状态都可变为外部状态
用户想使用一个已经存在的类,而它的接口不符合用户的需求
6、代理模式有以下的应用场景()。
为了隐藏目标对象存在于不同地址空间的事实,方便客户端访问时
控制不同种类客户对真实对象的访问权限时
当调用目标对象需要附加一些额外的处理功能时
7、代理模式的主要优点()。
代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用
代理对象可以扩展目标对象的功能
代理模式能将客户端与目标对象分离
降低了系统的耦合度
8、代理模式在客户端和目标对象增加一个代理对象,会造成请求处理速度变慢。
9、代理模式降低了系统的复杂度。
10、系统中有大量对象时可以使用享元模式。
第七章
1、桥接(Bridge)模式不能用在下列哪个场合()
类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充,这时Bridge模式使用户可以对不同的抽象接口和实现部分进行组合,井分别对它们进行扩充
用户不希望在抽像和它的实现部分之间有一个固定的绑定关系,例如,这种情况可能是因
为在程序运行时刻实现部分应可以被选择或者切换
对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译
2、以下用来描述桥接(Bridge)的意图是()。
提供一个创建一系列相关或相互依赖对象的接口,面无须指定它们具体的类
3、以下可用来描述外观(Facade)的是()。
为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
保证一个类仅有一个实例,并提供一个访问它的全局访问点
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
这样以后就可将该对象恢复到原先保存的状态
4、在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互,主要体现在()。
适配器(Adapte)模式
合成(Composite)模式
原型(Prototype)模式
桥接(Bridge)模式
AD
5、桥接(Bridge)模式的优点有()。
分离接口及其实现部分
提高可扩充性
改变值以指定新对象
实现细节对客户透明
ABD
6、使用桥接(Bridge)模式时需要注意()。
仅有一个实现类的接口Implementor
创建正确的实现类的接口Implementor对象
共享实现类的接口Implementor对象
想使用一个已经存在的类,而它的接口不符合需求
7、外观(Facade)模式的优点有()。
降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响到调用它的客户类
对客户屏蔽了子系统组件,减少了客户处理的对象数目
使得子系统使用起来更加容易
8、外观(Facade)模式能很好地限制客户使用子系统类。
9、桥梁(桥接Bridge)模式中,抽象类依赖实现类。
10、JAVA的三层开发模式可用门面(外观Facade)模式。
)模式。
第八章
1、关于模式适用性,()不适合使用职责链(ChainofResponsibility
有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定
在需要用比较通用和复杂的对象指针代替简单的指针的时候
用户想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求
可以处理一个请求的对象集合应被动态指定
2、Java的异常处理机制可理解为()行为模式。
观察者(Observer)模式
迭代器(Iterator)模式
职责链(ChainofResponsibility)模式
策略(Strategy)模式
3、以下意图()可用来描述解释器(Interpreter)。
将抽象部分与它的现实部分分离,使它们都可以独立变化
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不用的表示
为其它对象提供一种代理以控制对这个对象的访问
4、使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系可用来描述职责链(ChainofResponsibility)。
5、责任链模式优点包括()。
降低耦合度,它将请求的发送者和接收者解耦
简化了对象。
使得对象不需要知道链的结构
增强给对象指派职责的灵活性,通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任
增加新的请求处理类很方便
ABCD6、解释器模式的优点是()
可扩展性比较好,灵活
增加了新的解释表达式的方式
易于实现简单文法
对于复杂的文法较易维护
7、命令模式中,请求以命令的形式包裹在对象中,并传给调用对象。
8、责任链模式可动态指定一组对象处理请求。
代替。
9、解释器模式可利用场景比较少,JAVA中如果碰到可以用expression4J
10、职责链模式中纯的职责链模式比不纯的职责链模式优先级高。
第九章
1、以下选项可用来描述观察者(Observer)的是()。
将抽象部分与它的现实部分分离,使它们都可以独立变化。
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系
2、以下哪一种说法可用来描述备忘录(Memento)()。
保证一个类只有一个实例,并提供一个访问它的全局访问点
将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;
对请求进行排队或记录请求日志,以及支持可撤销的操作
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这
样以后就可将该对象恢复到原先保存的状态
提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示
3、观察者(Observer)模式适用于()。
当一个抽象模型有两个方面,其中一个方面依赖于另一方面。
将这二者封装在独立的对象中以使它们可以各自独立的改变和复用
当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变
当一个对象必须通知其他对象,而他又不能假定其它对象是谁。
换言之,用户不希望这些对象是紧密耦合的
一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作
4、观察者模式允许用户独立地改变目标和观察者。
用户可以单独复用目标对象而无须同时复用其观察者,反之亦然。
它也使用户可以在不改动目标和其他的观察者的前提下增加观察者。
面()是观察者模式其他的优缺点。
它使得状态转换显示化
支持广播通信
意外的更新
目标和观察者间的抽象耦合
BCD
5、观察者模式(ObserverPattern)还有()其他名称。
发布-订阅(Publish/Subscribe)模式
模型-视图(Model/View)模式
源-监听器(Source/Listener)模式
从属者(Dependents)模式
6、备忘录模式有以下()的效果。
保持封装边界
它简化了原发器
使用备忘录可能代价很高
维护备忘录的潜在代价
7、迭代器模式的结构包括()。
抽象聚合(Aggregate)角色
具体聚合(ConcreteAggregate)角色
抽象迭代器(Iterator)角色
具体迭代器(C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计模式与软件体系结构 智慧 树知到 设计 模式 软件 体系结构 章节 测试 答案