C#设计模式

C#设计模式"

作者:刘伟、胡志刚、阎朝坤
ISBN:9787302314806
定价:¥44
字数:千字
页数:
出版时间:2013.05.01
开本:
版次:1-5
装帧:
出版社:清华大学出版社
简介

本书使用C#语言详细讲解了24种设计模式。全书共分为26章,内容包括设计模式概述、面向对象设计原则、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式、职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。

本书结合大量项目应用实例,对每一个设计模式都进行了细致的讲解。本书结构合理、条理清晰、内容丰富,且在每一章后面都配有大量的习题,在附录中还提供了对UML类图相关知识的介绍和两套设计模式模拟试题。

本书既可作为高等院校计算机及软件相关专业本科生和研究生软件设计模式、软件体系结构、面向对象分析与设计等课程教材,也可作为各软件培训机构培训教材及全国计算机技术与软件专业技术资格(水平)考试辅导教材,还可作为软件架构师、软件工程师及广大软件爱好者的自学教材和参考用书。

前言

设计模式和敏捷开发方法的创始人之一Erich Gamma曾说过: “设计和开发面向对象软件是非常困难的,而设计和开发可复用的面向对象软件则更加困难”。正因为如此,在软件开发过程中,有经验的设计者往往会重复使用一些他们在以前的设计工作中曾经用到的成功而有效的解决方案,这些解决方案可以提高开发人员的开发效率与软件质量,并使所设计的软件更加灵活、易于扩展,可复用性也更高。这些解决方案即为设计模式,设计模式为实现可维护性复用而诞生,无论是面向对象编程的初学者还是有一定编程经验的程序员,都可以从设计模式的学习和使用中深入了解面向对象思想的精华,开发出可扩展性和可复用性俱佳的软件。

设计模式是前人经验的积累,它让我们的软件变得更像一个艺术品,而不是一堆难以维护和重用的代码,设计模式已经成功地应用于众多软件设计中,并且成为一个优秀的面向对象软件开发人员所必须掌握的知识和技能。本书编者在十多年的软件开发和计算机教育教学工作中积累了丰富的设计模式使用经验和教学经验,也深刻体会到学习设计模式的重要性。目前,国内外越来越多的高校在计算机及软件工程相关专业的本科生和研究生教学中开设了软件体系结构、面向对象分析与设计等课程,而设计模式是这些课程的核心组成部分,还有的学校将设计模式作为一门单独的课程来开设,此外,很多软件培训机构在软件工程师培训课程中也包含了设计模式的相关内容,在各类计算机考试和企业招聘笔试中,设计模式相关考题也占据了一定的比例。为此,编写一本适合教学所需的设计模式教材是一件非常有意义的事情,编者在成功完成《设计模式》、《设计模式实训教程》等书籍的基础上,针对目前部分高校对C#设计模式教材的需求,特编写了本书。

本书的编写目的在于让读者通过大量的应用实例和习题,理论联系实际,以便更快、更好地理解和掌握每一个设计模式。本书共26章,可分为4个部分: 

第1部分包含第1章和第2章,主要介绍与设计模式相关的一些基础知识,包括设计模式概述、7个常用的面向对象设计原则等内容,为后续设计模式的学习奠定基础。

第2部分包含第3章~第8章,介绍6种常用的创建型设计模式,分别是简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式和单例模式。

第3部分包含第9章~第15章,介绍7种常用的结构型设计模式,分别是适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。

第4部分包含第16章~第26章,介绍11种常用的行为型设计模式,分别是职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。

本书结合大量的项目应用实例,对每一个设计模式都进行了细致的讲解。本书结构合理、条理清晰、内容丰富、讲解深入,且在每一章后面都配有大量的习题,很多习题基于某个项目实例,让读者在学完相关知识后能够更好地消化和巩固所学知识。此外,在附录中还提供了对UML类图相关知识的介绍和两套设计模式模拟试题。

本书在编写过程中参考了大量已有的设计模式书籍,集各家之所长,并进行了适当的整理和扩展,将一些原本深奥并难以理解的设计思想通过一些简单的应用实例来解析,让读者能够轻松掌握面向对象设计思想的精髓。本书以“实例驱动教学”为整体编写原则,对于每一个模式的学习都至少基于一个应用实例,结合应用实例来分析和讲解每一个设计模式,力求通过最通俗易懂的方式让读者学习和理解设计模式,让读者在真实项目实例的引导下学会选择和合理运用设计模式。在设计模式讲解部分,每一章的基本结构如下: 

本书提供了完整的设计模式及应用实例的UML结构图(类图)和C#实现代码,所有类图均严格按照UML 2.X标准绘制,所有代码均在Microsoft Visual Studio 2010中通过测试且运行无误。与本书相对应的博客(地址: http://blog.csdn.net/LoveLion/)和电子邮箱(地址: chinasainfo@126.com)将为广大读者提供一个灵活的沟通平台,读者可以很方便地与本书编者进行交流。本书提供了完整的配套教学资料,包括所有实例的源代码、PPT格式的电子课件、课后习题和模拟试题答案等,任课教师可以通过发送邮件来获取相关教学资料。这些教学资料将形成一个完整的体系,为教学和学习提供便利。

本书既可作为高等院校计算机及软件相关专业本科生和研究生软件设计模式、软件体系结构、面向对象分析与设计等课程教材,也可作为各软件培训机构培训教材及全国计算机技术与软件专业技术资格(水平)考试辅导教材,还可作为软件架构师、软件工程师及广大软件爱好者的自学教材和参考用书。

本书主体内容由中南大学软件学院刘伟和河南大学计算机与信息工程学院阎朝坤负责编写,中南大学软件学院胡志刚教授负责全书的审校工作。中南大学信息科学与工程学院的王斌和郭克华参与本书结构及内容的总体规划,中南大学软件学院的江林和杨柳参与部分课后习题的命题工作,夏莉、刘宏韬、苏瑜奕、陈甫俊喾、赵璟等参与教材勘误工作。在此向所有帮助和支持过我们的朋友表示感谢。在编写过程中,编者参考和引用了国内外很多书籍和网站上的相关内容,部分图片的素材和个别实例的初始原型也来源于网络,由于涉及的网站和网页太多,没有一一列出,在此一并予以感谢。最后特别感谢清华大学出版社为本书出版所作出的努力。

由于时间仓促、编者学识有限,虽经多次审阅与校稿,但书中仍可能存在不足和疏漏之处,恳请广大读者将意见和建议通过清华大学出版社反馈给我们。

编者

2013年1月

目录

第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模拟试题二

参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个