设计模式Java版期末总结.docx
- 文档编号:8409800
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:11
- 大小:65.97KB
设计模式Java版期末总结.docx
《设计模式Java版期末总结.docx》由会员分享,可在线阅读,更多相关《设计模式Java版期末总结.docx(11页珍藏版)》请在冰豆网上搜索。
设计模式Java版期末总结
第一章设计模式概念
1.设计模式
名词解释:
一套被反复使用,多数人知晓,经过分类编目的优秀代码设计经验的总结。
作用:
重用代码,使代码更易理解,保证代码的可靠性。
2.可复用面向对象软件系统一般划分为两大类:
应用程序工具箱、框架。
3.设计模式贯彻的原理:
面向接口编程,而不是面向实现。
目标原则:
降低耦合,增强灵活性。
4.设计模式的要素
模式名称、问题、环境或初始环境、解决方案、效果、举例、末态环境、推理、其他有关模式、已知的应用。
5.常用的设计模式有23种。
按特点分为三类:
创建型,结构型,行为型。
6.创建型模式
定义:
用来创建对象的模式,抽象了实例化的过程,帮助一个系统独立于其
关联对象的创建、组合和表达方式。
功能:
将系统所使用的具体类的信息封装起来;隐藏类的实例是如何被创建和组织的。
作用:
封装创建逻辑,不仅仅是一个对象那么简单;封装创建逻辑变化,客户代码尽量不修改,或尽量少修改。
常见的创建型设计模式:
单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
7.结构型模式
定义:
类和对象的结构,它采用继承机制来组合接口或实现,或者通过组
合一些对象实现新的功能。
常见的结构型设计模式有:
代理模式、装饰模式、适配器模式、组合模式、桥梁模式、外观模式、享元模式。
8.行为型模式
定义:
关注的是对象的行为,用来解决对象之间的联系问题
常见的行为型设计模式有:
模板方法模式、命令模式、责任链模式、策略模式、迭代模式、中介者模式、
观察者模式、备忘录模式、访问者模式、状态模式、解释器模式
课后题:
1、设计模式起源于:
建筑工程设计
2、下面不属于设计模式的要素的是:
因素
3、目前有23中设计模式,分为3大类
4、设计模式分为创建型、结构型和行为型三大类型
第二章设计原则
1.单一职责原则()
名词解释:
一个类,只有一个引起它变化的原因,应该只有一个职责。
优点:
①降低类的复杂性
②提高类的可读性
③提高代码的可维护性和复用性
④降低因变更引起的风险。
作用:
单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口
或类设计是否优良,但“职责”和“变化原因”都是不可度量的。
2.里氏替换原则()
名词解释:
所有引用基类的地方必须能透明地使用其子类对象,反之则不行。
优点:
①代码共享,减少创建类的工作量。
②提高代码可重用性
③提高代码的可拓展性
④提高产品或项目的开发性。
体现里氏替换原则的有如下几个模式:
策略模式、组合模式、代理模式
3.依赖倒置原则()
名词解释:
高层模块不应该依赖低层模块,两者都应依赖其抽象,抽象不依赖细节,而细
节依赖抽象。
优点:
①减少类间的耦合性
②提高系统的稳定性,降低并行开发引起的风险。
③提高代码的可读性和可维护性。
作用:
适用于大中型项目,是实现开闭原则的重要途径,依赖倒置原则没有实现,就不能
实现对扩展的开放,对修改关闭。
4.接口隔离原则()
名词解释:
一个类对另外一个类的依赖性应当是建立在最小的接口上,使用多个专门的接
口比使用单一的总接口要好。
简述接口隔离原则:
①一个类对另外一个类的依赖性应当是建立在最小的接口上的。
②一个借口代表一个角色,不应当将不同的角色都交给一个接口。
③不应该强迫客户依赖于它们不用的方法。
作用:
只提供调用者需要的方法,屏蔽不必要的方法;带来了设计的灵活性,并降低了整
个项目的风险,当业务变化是能够快速应付。
5.迪米特法则()
名词解释:
一个对象应当对其他对象尽可能少的了解。
作用:
减少类之间的关系,降低类之间的耦合。
体现迪米特法则的设计模式有两个:
外观模式、中介者模式
6.开闭原则()
名词解释:
一个软件实体应当对扩展开放,对修改关闭。
优点:
①提高复用性②提高可维护性③提高灵活性④易于测试
重要性:
开闭原则是面向对象设计的终极目标,其他设计原则都可以看做是开闭原则的实
现方法。
课后题:
1、里氏替换原则简称:
2、关于单一职责原则描述错误的是:
单一职责原则提高类之间的耦合性。
(降低)
3、关于依赖倒置原则描述错误的是:
依赖倒置原则中,高层模块不应该依赖低层模块,但低层模块依赖与高层模块。
(都依赖于其抽象)
4、设计模式中的六个主要原则包括:
单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则和开闭原则。
5、在设计模式中,对迪米特法则进行应用的设计模式有外观模式和中介者模式
第三章创建型模式
1.单例模式:
一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
在中有两种表现形式:
饿汉式单例类;懒汉式单例类。
功能上分为:
状态单例类;无状态单例类。
2.工厂方法模式:
定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中
3.抽象工厂模式:
工厂方法的升级,为创建一组相关或相互依赖的对象提供一个接口,而
且无需指定他们的具体类。
4.建造者模式:
将一个复杂对象的构建与其表示分离,使同样的构建过程创建出不同的表示
5.原型模式:
用原型实例指定创建对象的种类,并通过复制这些原型创建新的对象。
课后题:
1、不属于创建型模式的是:
策略模式
2、关于单例模式说法错误的是:
单例模式可以具有子类,并进行扩展。
(单例模式无法创建子类,扩展困难)
3、关于工厂方法模式错误的是:
工厂方法模式不可以与其他模式混合使用,不能进行扩展。
(可以与其他模式混合使用)
4、关于抽象工厂模式说法正确的是:
抽象工厂模式与工厂方法模式相似,也具有抽象工厂、具体工厂、抽象产品和具体产品4个角色;抽象工厂模式是工厂方法模式的进一步抽象,针对的是一族产品
5、简述建造者模式
将一个复杂对象的构建与其表示分离,使得同样的构建过程,可以创建不同的表示。
6、简述原型模式
用原型实例指定创建对象的原型,创建新的对象
第四章结构型模式
课后题:
1、属于结构型模式的是:
代理模式、适配器模式、享元模式
2、关于装饰模式不正确的是:
装饰模式只有构件和装饰这两个角色(抽象构件角色、具体构件角色、、装饰角色、具体装饰角色)
3、关于适配器模式不正确的是:
适配器模式简化了系统并提高系统的效率(对系统进行了扩展)
4、关于外观模式不正确的是:
外观模式满足闭合原则(不满足)
5、简述桥梁模式和享元模式
桥梁模式:
将抽象和实现解耦,使得两者可以独立的变化
享元模式:
使用共享对象可有效的支持大量的细粒度的对象
第五章行为型模式
(1)
1、模板方法模式的优点:
①封装不变的部分,扩展可变部分
②提取公共部分代码,便于维护
③行为由父类控制,子类实现。
2、命令模式的优点:
①类间解耦
②可扩展性
③命令模式结合其他模式会更优秀。
3.责任链模式的优点:
①将请求和处理分开②提高系统的灵活性。
4策略模式的优点:
①策略模式提供了管理相关的算法族的办法。
②策略模式提供了可以替换继承关系的办法。
③使用策略模式可以避免使用多重条件转移语句。
5.迭代器模式的优点:
①迭代器模式简化了访问容器元素的操作,具备一个统一的遍历接口。
②封装遍历算法,使算法独立于聚集角色。
课后题:
1、不属于行为模式的是:
工厂方法模式
2、关于模板方法模式说法错误的是:
模板方法模式破坏了开闭原则(符合开闭原则)
3、关于命令模式说法错误的是
命令模式包括命令和执行命令这两个角色(还有具体命令角色、接受者角色、调用者角色)
命令模式提高类之间的耦合性(降低)
4、关于策略模式说法错误的是:
策略模式只包括抽象策略和具体策略这两个角色(还有环境角色)
5、关于责任链模式说法错误的是:
责任链模式是一种不经常使用的行为模式(常见)
责任链模式提高了程序的性能且易于调试(降低性能,不易调试)
6、迭代器模式的4个角色分别是抽象迭代器、具体迭代器、抽象聚集和具体聚集。
第六章行为型模式
(2)
1.中介者模式:
名词解释:
用一个中介对象封装一系列对象的交互,中介者使各对象不需要显式地相互作
用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
适用场景:
一个类依赖多个类的情况下,但并不是只要有依赖关系就考虑使用中介者模式。
类图:
2.观察者模式
名词解释:
定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖
于它的对象都会得到通知并被自动更新。
适用场景:
①关联行为场景②事件多级触发场景③跨系统的消息交互场景。
类图:
3.备忘录模式
名词解释:
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这
个状态,这样以后就可以将该对象回复到原先保存的状态。
适用场景:
①需要保存和恢复数据的相关状态场景
②提供一个可回滚的操作c:
需要监控副本的场景
③数据库连接的事务管理使用
类图:
4.访问者模式
名词解释:
封装一些作用于某种数据结构中的各个元素的操作,它可以在不改变数据结构
的前提下定义作用于这些元素的新的操作。
使用场景:
①一个对象结构包含很多类对象,它们有不同接口,对象实施依赖于具体类的操作时即
使用迭代器模式也不能胜任的场景。
②需要对一个对象结构中的对象进行很多不同并且不相关的操作,避免操作污染类。
③业务规则要求遍历多个不同的对象。
类图:
课后题:
1、关于中介者模式说法错误的是:
中介者模式使对象间紧密耦合(松耦合)
2、关于备忘录模式说法错误的是:
备忘录模式可以保存对象的状态,但不能恢复数据。
(能够恢复数据)
3、关于访问者模式说法错误的是:
访问者模式包括访问者和被访问者两个角色(包括结构对象角色、抽象对象角色、具体访问者角色等)
5、状态模式的3个角色分别是抽象状态角色、具体状态角色和环境角色
第七章混合设计模式
课后题:
1、说法错误的是:
工厂策略模式是抽象工厂模式和策略模式的混合使用模式(工厂方法模式)
2、命令链模式是命令模式和责任链模式的混合使用
3、工厂策略模式是工厂方法模式和策略模式的混合使用
4、观察中介者模式是观察者模式和中介者模式的混合使用
5、规格模式是策略模式和组合模式的扩展
第八章设计模式对比
1.创建型模式对比:
工厂方法模式:
注重的是整体对象的创建方法;
建造者模式:
注重部件构造的过程,旨在通过一步步精确构造,创建出一个复杂的对象;
抽象工厂模式:
实现对产品家族的创建,不关心构造过程。
结构型模式对比:
装饰模式是代理模式的一个特殊应用,虽然他们都具有相同的接口,但装饰模式是对类的
功能进行加强或减弱,重点是类的功能变化,而代理模式着重代理过程的控制。
装饰模式和适配器模式都能对类进行“包装”,但装饰模式装饰的是同一家族,而适配器
模式可以修饰不同接口的对象,主要是将非本家族的对象伪装成同一家族的对象。
行为型模式对比:
策略模式是封装算法,认为算法是一个完整的、不可拆分的原子业务,其目的是让这些算
法独立,而且可以相互替换,让行为的变化独立于拥有行为的客户。
命令模式则是对动作的解耦,把一个动作的执行分为执行对象、执行行为,让两者相互独
立而互不影响。
课后题:
1、关于工厂方法模式、抽象工厂模式和建造者模式说法错误的是:
工厂方法模式、抽象工厂模式和建造者模式都属于行为型模式(创建型)
2、关于代理模式、装饰模式和适配器模式说法错误的是:
代理模式对类的功能进行加强或减弱,重点是类的功能变化(装饰模式)
3、关于策略模式和命令模式说法错误的是:
命令模式适用于算法要求变换的场景,而策略模式适用于解耦对象的场合(相反)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 Java 期末 总结