您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页设计模式与软件架构总复习题型与答案

设计模式与软件架构总复习题型与答案

来源:筏尚旅游网
设计模式与软件架构总复习

总要求,闭卷,十八周之后考试。选择题20题20分,判断题10题10分,简答题6题36分,UML 2题24分,简述题1题10分。

第一章 学习基础

1简述UML中的组合和聚合的区别。

答:聚合体对象通过设值或构造方法初始化聚合元素对象;而组合对象则在其内部行为中创建或初始化聚合元素对象。

2简述面向对象与结构化的区别。

区别:在于设计思维不同,封装性上结构化编程难于封装,复用性上不如面向对象编程。

第二章 面向对象程序设计原则

1简述依赖倒置原则的三层含义,优点和注意事项。

三层含义:高层模块不应该依赖于底层模块,二者都应该依赖于抽象

抽象不应依赖于细节

细节应依赖于抽象

优点:(1)提高扩展性 (2)代码层次更加清晰 (3)降低耦合度

注意 事项:(1)增加了代码的复杂度 (2)更适合应对需求变化

2简述开放闭合原则的含义,优点和注意事项。

开放闭合原则含义:要求类或模块的代码“对扩展是开放的,对修改是关闭的”

优点:(1)代码可读性高,可维护性强(2)提高可复用性

注意事项:(1)代码可读性降低 (2)程序测试成本增加

第三章 设计模式入门

1简述简单工厂模式的优点。 优点:提高了代码的复用或可维护性。

2简述信息专家模式的优点。 优点:降低代码的耦合,保持专家类的封装特性。

第四章 GOF创建型模式

1简述工厂方法和抽象工厂模式的区别和注意事项。

区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个

工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂可以多个

工厂方法的注意事项:(1) 当增加新的产品对象子类时,设计类会成倍增加。

(2)工厂方法类操作所有类型产品对象的业务行为模板一致。

2简述原型模式的深复制和浅复制的定义与区别。

深复制定义:指对象在复制自身的同时会完成引用类型变量所指向对象的复制。

浅复制定义:指对象复制自身时引用类型的变量只复制使用值。

两者区别:浅复制生成的新对象与原型对象共享引用类型的域,深度复制生产的新对象与原型对象不共享引用类型的域。

3简述抽象工厂模式的定义和注意事项。

抽象工厂指在不指定具体产品类的情况下,为相互关联的产品簇或产品集提供创建接口,并向客户端隐藏具体产品创建的细节或表示的对象。

注意事项:(1)产品簇中抽象产品类型的增加或减少会导致已有代码的大量修改。

(2)产品簇样式的增加,对导致设计类急剧增加。

(3)由于工厂对象提供无状态服务,所以可以设计成单例。

4简述单例模式的定义和注意事项。

单例模式的定义:单例是指目标类只有一个实例对象,并且向使用该对象的客户端提供访问单例的全局方法。

注意事项:(1)编程语言中反射和序列化/反序列化可能会破坏单例特性。

(2)多客户端并发访问单例类时,也可能破坏单例特性。

(3)在软件系统中使用过多的单例对象,对导致程序性能下降。

(4)设计单例类时,并不一定要完全遵守GoF理论形式。

第五章 GOF结构性模式

1简述代理模式的定义和优点。

代理模式定义:代理是用于控制客户端访问目标对象的占位对象。

优点:(1)职责清晰

(2)起到中介和保护目标对象地作用

2简述结构型设计模式有哪些模式构成,用生活中的的例子举例二种。

结构型设计模式:适配器模式、桥模式、组合模式、装饰者模式、门面模式、享元模式、代理模式。

适配器模式: 1.美国电器110V,中国220V,就要有一个适配器将110V转换为220V 2.Linux上运行windows系统

装饰者模式:1.一幅画有没有画框都可以挂墙上,但通常都是有画框的,并且实际上是画框被挂在墙上

代理模式:1.windows的快捷方式 2.买火车票可以在代售点买 3.支票

3简述适配器和桥模式的注意事项和区别。

适配器注意事项: (1)一个适配器只能适配一个被适配对象类型,因为适配器与被适配对象类型之间的耦合是静态关联关系。

(2)类适配器可以重写被适配对象类型的行为,但无法实现一对多的适配关系。

(3)对象适配器无法重写被适配对象的行为。

(4) 当被适配与客户类相互提供不兼容服务时,适配器可以实现双向适配行为。

桥模式注意事项:(1)分离抽形层和实现层会增加大量的设计类。

(2)反射和依赖注入等技术对解耦有帮助。

(3)实现层的实现类可以同时实现抽象层接口和实现层接口,这样做能减少设计类的数量,但也增加了实现层与抽象层之间的耦合度。

适配器与桥模式的区别: 出发点不同。

4简述装饰器模式的定义和优点。

定义:装饰器通过包装的方式向目标对象中动态地添加或删除功能。

优点:(1)可以轻松对已存在地对象进行修改和包装。

(2)可以动态、不限量地进行装饰,可以更灵活的扩展功能。

第六章 GOF行为型模式

1简述迭代器方法模式的定义和优点。

迭代器模式定义:迭代器能够在不暴露聚合体内部表示的情况下,向客户端提供遍历聚合元素的方法。

优点:(1)支持不同方式遍历一个聚合对象(2)迭代器简化了聚合类

(3)在同一个聚合上可以有多个遍历(4)增加新的聚合类和迭代器无需修改原有代码

2简述访问者模式的定义和注意事项。

访问者模式定义:访问者用于封装施加在聚合体中聚合元素的操作,从而使该操作从聚合对象中分离出来,在不对聚合对象产生影响的前提下实现自由扩展。

注意事项:(1)聚合元素类型的变化会使访问者模式的类设计方案付出巨大代价。

(2)当访问者访问聚合元素私有状态时,可能会破坏聚合元素的封装性。

(3)操作聚合体的客户端与访问者实现类型之间有直接的耦合关系。

3简述仲裁者的定义和注意事项。

仲裁者模式定义:仲裁者可以封装和协调多个对象之间的耦合交互行为,以减弱这些对象之

间的耦合关系。

注意事项:(1)仲裁者实现了复杂的协作逻辑,代码稳定性较差。

(2)仲裁者不需要进行子类扩展。

4简述行为型设计模式有哪些模式构成,用生活中的的例子举例二种。

UML重点考查时序图和类图。

1、时序图。(p12,p42)

(1)请补充下面时序图的的内容让其完整。

(2)用文字描述时序图。

(3)时序图的注意事项。

1 消息类型有同步消息、异步消息、返回消息、自关联消息等。

2 如果需要在时序图中标注对象生命周期终止,可以使用终止符号。

3 可以对时序图标注对象和构造类型。

4 当系统内部对象需要和系统外部环境交互时,可以将外部环境标注为对象。

2、类图。(p103,p172,p181,p235)

(1)请补充下面类图的的内容让其完整。

(2)用文字描述下面类图的关系。

(3)类图的注意事项。

1 类图可以呈现域、方法和类关系等代码元素,但无法表达详细业务流程。

2 类图文档通常与代码实现不一致,且更新代价较高。

3 从静态代码形式上看,不同的类关系代码形式常常相同或相似。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务