总要求,闭卷,十八周之后考试。选择题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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务