作者简介
刘伟,中南大学计算机应用技术博士,高级工程师,中国计算机学会会员,国家认证系统分析师,首批国家认证系统架构设计师,数据库系统工程师,微软认证系统工程师,CSDN认证专家及知名博主。具有十多年软件开发、项目管理及教育培训经验,为多家企业提供IT咨询和培训服务。在设计模式、代码重构、软件需求、软件架构、UML建模技术等领域拥有多年研究与应用经验,主持和参与四十多个软件项目的研发工作,拥有软件著作权十余项,发表相关论文二十多篇,已出版《设计模式》、《设计模式实训教程》、《C#设计模式》、《设计模式的艺术——软件开发人员内功修炼之道》等多部著作。
目录
目录
第1章设计模式概述
1.1设计模式的诞生与发展
1.1.1模式的诞生与定义
1.1.2软件模式概述
1.1.3设计模式的发展
1.2设计模式的定义与分类
1.2.1设计模式的定义
1.2.2设计模式的基本要素
1.2.3设计模式的分类
1.3GoF设计模式简介
1.4设计模式的优点
1.5本章小结
1.6习题
第2章面向对象设计原则
2.1面向对象设计原则概述
2.2单一职责原则
2.3开闭原则
2.4里氏代换原则
2.5依赖倒转原则
2.6接口隔离原则
2.7合成复用原则
2.8迪米特法则
2.9本章小结
2.10习题
第3章简单工厂模式
3.1创建型模式
3.2简单工厂模式概述
3.3简单工厂模式的结构与实现
3.3.1简单工厂模式的结构
3.3.2简单工厂模式的实现
3.4简单工厂模式的应用实例
3.5创建对象与使用对象
3.6简单工厂模式的简化
3.7简单工厂模式的优缺点与适用环境
3.7.1简单工厂模式的优点
3.7.2简单工厂模式的缺点
3.7.3简单工厂模式的适用环境
3.8本章小结
3.9习题
第4章工厂方法模式
4.1工厂方法模式概述
4.2工厂方法模式的结构与实现
4.2.1工厂方法模式的结构
4.2.2工厂方法模式的实现
4.3工厂方法模式的应用实例
4.4配置文件与反射
4.5工厂方法的重载
4.6工厂方法的隐藏
4.7工厂方法模式的优缺点与适用环境
4.7.1工厂方法模式的优点
4.7.2工厂方法模式的缺点
4.7.3工厂方法模式的适用环境
4.8本章小结
4.9习题
第5章抽象工厂模式
5.1产品等级结构与产品族
5.2抽象工厂模式概述
5.3抽象工厂模式的结构与实现
5.3.1抽象工厂模式的结构
5.3.2抽象工厂模式的实现
5.4抽象工厂模式的应用实例
5.5开闭原则的倾斜性
5.6抽象工厂模式的优缺点与适用环境
5.6.1抽象工厂模式的优点
5.6.2抽象工厂模式的缺点
5.6.3抽象工厂模式的适用环境
5.7本章小结
5.8习题
第6章建造者模式
6.1建造者模式概述
6.2建造者模式的结构与实现
6.2.1建造者模式的结构
6.2.2建造者模式的实现
6.3建造者模式的应用实例
6.4指挥者类的深入讨论
6.5建造者模式的优缺点与适用环境
6.5.1建造者模式的优点
6.5.2建造者模式的缺点
6.5.3建造者模式的适用环境
6.6本章小结
6.7习题
第7章原型模式
7.1原型模式概述
7.2原型模式的结构与实现
7.2.1原型模式的结构
7.2.2浅克隆与深克隆
7.2.3原型模式的实现
7.3原型模式的应用实例
7.4原型管理器
7.5原型模式的优缺点与适用环境
7.5.1原型模式的优点
7.5.2原型模式的缺点
7.5.3原型模式的适用环境
7.6本章小结
7.7习题
第8章单例模式
8.1单例模式概述
8.2单例模式的结构与实现
8.2.1单例模式的结构
8.2.2单例模式的实现
8.3单例模式的应用实例
8.4饿汉式单例与懒汉式单例
8.5单例模式的优缺点与适用环境
8.5.1单例模式的优点
8.5.2单例模式的缺点
8.5.3单例模式的适用环境
8.6本章小结
8.7习题
第9章适配器模式
9.1结构型模式
9.2适配器模式概述
9.3适配器模式的结构与实现
9.3.1适配器模式的结构
9.3.2适配器模式的实现
9.4适配器模式的应用实例
9.5缺省适配器模式
9.6双向适配器
9.7适配器模式的优缺点与适用环境
9.7.1适配器模式的优点
9.7.2适配器模式的缺点
9.7.3适配器模式的适用环境
9.8本章小结
9.9习题
第10章桥接模式
10.1桥接模式概述
10.2桥接模式的结构与实现
10.2.1桥接模式的结构
10.2.2桥接模式的实现
10.3桥接模式的应用实例
10.4桥接模式与适配器模式联用
10.5桥接模式的优缺点与适用环境
10.5.1桥接模式的优点
10.5.2桥接模式的缺点
10.5.3桥接模式的适用环境
10.6本章小结
10.7习题
第11章组合模式
11.1组合模式概述
11.2组合模式的结构与实现
11.2.1组合模式的结构
11.2.2组合模式的实现
11.3组合模式的应用实例
11.4透明组合模式与安全组合模式
11.5组合模式的优缺点与适用环境
11.5.1组合模式的优点
11.5.2组合模式的缺点
11.5.3组合模式的适用环境
11.6本章小结
11.7习题
第12章装饰模式
12.1装饰模式概述
12.2装饰模式的结构与实现
12.2.1装饰模式的结构
12.2.2装饰模式的实现
12.3装饰模式的应用实例
12.4透明装饰模式与半透明装饰模式
12.5装饰模式的优缺点与适用环境
12.5.1装饰模式的优点
12.5.2装饰模式的缺点
12.5.3装饰模式的适用环境
12.6本章小结
12.7习题
第13章外观模式
13.1外观模式概述
13.2外观模式的结构与实现
13.2.1外观模式的结构
13.2.2外观模式的实现
13.3外观模式的应用实例
13.4抽象外观类
13.5外观模式的优缺点与适用环境
13.5.1外观模式的优点
13.5.2外观模式的缺点
13.5.3外观模式的适用环境
13.6本章小结
13.7习题
第14章享元模式
14.1享元模式概述
14.2享元模式的结构与实现
14.2.1享元模式的结构
14.2.2享元模式的实现
14.3享元模式的应用实例
14.4有外部状态的享元模式
14.5单纯享元模式和复合享元模式
14.6享元模式的优缺点与适用环境
14.6.1享元模式的优点
14.6.2享元模式的缺点
14.6.3享元模式的适用环境
14.7本章小结
14.8习题
第15章代理模式
15.1代理模式概述
15.2代理模式的结构与实现
15.2.1代理模式的结构
15.2.2代理模式的实现
15.3代理模式的应用实例
15.4远程代理
15.5虚拟代理
15.6缓冲代理
15.7代理模式的优缺点与适用环境
15.7.1代理模式的优点
15.7.2代理模式的缺点
15.7.3代理模式的适用环境
15.8本章小结
15.9习题
第16章职责链模式
16.1行为型模式
16.2职责链模式概述
16.3职责链模式的结构与实现
16.3.1职责链模式的结构
16.3.2职责链模式的实现
16.4职责链模式的应用实例
16.5纯与不纯的职责链模式
16.6职责链模式的优缺点与适用环境
16.6.1职责链模式的优点
16.6.2职责链模式的缺点
16.6.3职责链模式的适用环境
16.7本章小结
16.8习题
第17章命令模式
17.1命令模式概述
17.2命令模式的结构与实现
17.2.1命令模式的结构
17.2.2命令模式的实现
17.3命令模式的应用实例
17.4实现命令队列
17.5记录请求日志
17.6实现撤销操作
17.7宏命令
17.8命令模式的优缺点与适用环境
17.8.1命令模式的优点
17.8.2命令模式的缺点
17.8.3命令模式的适用环境
17.9本章小结
17.10习题
第18章解释器模式
18.1解释器模式概述
18.2文法规则和抽象语法树
18.3解释器模式的结构与实现
18.3.1解释器模式的结构
18.3.2解释器模式的实现
18.4解释器模式的应用实例
18.5解释器模式的优缺点与适用环境
18.5.1解释器模式的优点
18.5.2解释器模式的缺点
18.5.3解释器模式的适用环境
18.6本章小结
18.7习题
第19章迭代器模式
19.1迭代器模式概述
19.2迭代器模式的结构与实现
19.2.1迭代器模式的结构
19.2.2迭代器模式的实现
19.3迭代器模式的应用实例
19.4使用内部类实现迭代器
19.5.NET内置迭代器
19.6迭代器模式的优缺点与适用环境
19.6.1迭代器模式的优点
19.6.2迭代器模式的缺点
19.6.3迭代器模式的适用环境
19.7本章小结
19.8习题
第20章中介者模式
20.1中介者模式概述
20.2中介者模式的结构与实现
20.2.1中介者模式的结构
20.2.2中介者模式的实现
20.3中介者模式的应用实例
20.4扩展中介者与同事类
20.5中介者模式的优缺点与适用环境
20.5.1中介者模式的优点
20.5.2中介者模式的缺点
20.5.3中介者模式的适用环境
20.6本章小结
20.7习题
第21章备忘录模式
21.1备忘录模式概述
21.2备忘录模式的结构与实现
21.2.1备忘录模式的结构
21.2.2备忘录模式的实现
21.3备忘录模式的应用实例
21.4实现多次撤销
21.5备忘录模式的优缺点与适用环境
21.5.1备忘录模式的优点
21.5.2备忘录模式的缺点
21.5.3备忘录模式的适用环境
21.6本章小结
21.7习题
第22章观察者模式
22.1观察者模式概述
22.2观察者模式的结构与实现
22.2.1观察者模式的结构
22.2.2观察者模式的实现
22.3观察者模式的应用实例
22.4观察者模式与.NET中的委托事件模型
22.5观察者模式与MVC
22.6观察者模式的优缺点与适用环境
22.6.1观察者模式的优点
22.6.2观察者模式的缺点
22.6.3观察者模式的适用环境
22.7本章小结
22.8习题
第23章状态模式
23.1状态模式概述
23.2状态模式的结构与实现
23.2.1状态模式的结构
23.2.2状态模式的实现
23.3状态模式的应用实例
23.4共享状态
23.5使用环境类实现状态的转换
23.6状态模式的优缺点与适用环境
23.6.1状态模式的优点
23.6.2状态模式的缺点
23.6.3状态模式的适用环境
23.7本章小结
23.8习题
第24章策略模式
24.1策略模式概述
24.2策略模式的结构与实现
24.2.1策略模式的结构
24.2.2策略模式的实现
24.3策略模式的应用实例
24.4PetShop 4.0中的订单处理
24.5策略模式的优缺点与适用环境
24.5.1策略模式的优点
24.5.2策略模式的缺点
24.5.3策略模式的适用环境
24.6本章小结
24.7习题
第25章模板方法模式
25.1模板方法模式概述
25.2模板方法模式的结构与实现
25.2.1模板方法模式的结构
25.2.2模板方法模式的实现
25.3模板方法模式的应用实例
25.4钩子方法的使用
25.5模板方法模式的优缺点与适用环境
25.5.1模板方法模式的优点
25.5.2模板方法模式的缺点
25.5.3模板方法模式的适用环境
25.6本章小结
25.7习题
第26章访问者模式
26.1访问者模式概述
26.2访问者模式的结构与实现
26.2.1访问者模式的结构
26.2.2访问者模式的实现
26.3访问者模式的应用实例
26.4访问者模式与组合模式联用
26.5访问者模式的优缺点与适用环境
26.5.1访问者模式的优点
26.5.2访问者模式的缺点
26.5.3访问者模式的适用环境
26.6本章小结
26.7习题
附录AUML类图
A.1UML概述
A.2类与类的UML表示
A.3类之间的关系
附录B设计模式模拟试题
B.1模拟试题一
B.2模拟试题二
B.3模拟试题三
参考文献
内容摘要
第3章简单工厂模式
本章导学
创建型模式关注对象的创建过程,是一类最常见的设计模式,在软件开发中的应用非常广泛。创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。
简单工厂模式是最简单的设计模式之一,它虽然不属于GoF的23种设计模式,但是应用也较为频繁,同时它也是学习其他创建型模式的基础。在简单工厂模式中,只需要记住一个简单的参数即可获得所需的对象实例,它提供专门的核心工厂类来负责对象的创建,实现对象的创建和使用分离。
本章将对6种创建型模式进行简要的介绍,并通过实例来学习简单工厂模式,理解简单工厂模式的结构及特点,学习如何在实际软件项目开发中合理地使用简单工厂模式。
本章知识点
创建型模式。
简单工厂模式的定义。
简单工厂模式的结构。
简单工厂模式的实现。
简单工厂模式的应用。
简单工厂模式的优缺点。
简单工厂模式的适用环境。
3.1创建型模式
软件系统在运行时,类将实例化成对象,并由这些对象协作完成各项业务功能。创建型模式(Creational Pattern)关注对象的创建过程,是一类最常用的设计模式,在软件开发中的应用非常广泛。创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例创建细节。
创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。每一个创建型模式都通过采用不同的解决方案来回答3个问题: 创建什么(What),由谁创建(Who)和何时创建(When)。
在GoF设计模式中,包含5种创建型模式,通常将一种非GoF设计模式——简单工厂模式作为学习其他工厂模式的基础,这6种设计模式的名称、定义、学习难度和使用频率如表31所示。
主编推荐
以下为对购买帮助不大的评价