教育>本科研究生>电子信息类
软件设计模式基础及应用

软件设计模式基础及应用"

作者:王竹荣,黑新宏
ISBN:9787121421617
定价:¥52.0
字数:371千字
页数:232
出版时间:2021-10
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书主要分为三部分,第一部分为设计模式基础知识篇,主要包括面向对象基本知识、UML基本知识的概念。第二部分为设计模式篇,主要讲解三大类若干设计模式及其应用。通对一些基本设计模式、基本原理的讲解及应用实例,使学生能理解设计模式背后的基本原则和动机。第三部分为设计模式提高篇,主要讲解在复杂场景下设计模式的应用,从而达到对软件设计中高层次设计模式的组合应用和复杂场景需求变化时采用设计模式的解决方案及应用效果。为更好地服务当前人工智能需求和发展目标,针对每个设计模式,给出其Python语言程序参考,每章中均有一定的习题,帮助学生巩固重点知识。本书既可作为高等学校计算机相关专业本科生和研究生设计模式的教材,也可作为软件从业人员的参考用书。

前言

前  言 在面向对象程序设计中,通过对父类的继承,可以实现软件复用。然而,多层次的继承也给我们带来不少困惑。举个例子,老师在上课的时候给学生提这样一个问题,请学生说出父母的名字?毫无疑问,每名学生都能轻松地回答上来。那么请学生继续说出祖父、祖母(或者外祖父、外祖母)的名字?这时只有一部分学生能回答上来。如果再这样问下去,估计就没多少学生能回答上来了。在面向对象软件设计中也是类似道理,虽然继承是面向对象的一大特征,但如果继承层次越多,派生类和祖先类之间的关系就会越疏远。而且由于类的继承层次太多导致巨型类层次结构更为复杂,对它的维护也更加困难。设计基于面向对象可复用的软件一直是软件开发人员的目标,但是基于面向对象开发可复用且易于理解的软件更是难上加难。设计模式是解决上述问题的关键技术方法。 设计模式的概念来源于建筑领域。模式之父(Christopher Alexander)根据建筑学的经验首先提出模式的概念,他将模式定义为“某一特定场景问题的解决方法”。在此基础上,“四人团”(Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides,GoF)提取了软件设计中常用的23种设计模式,并将这些模式收录在《设计模式:可复用面向对象软件的基础》(以下简称《设计模式》)一书中。这23种设计模式可分为三大类,即创建型设计模式、结构型设计模式和行为型设计模式。《设计模式》一书对面向对象设计的策略提出了一些建议,主要有以下三条。 (1) 找到变化并将其封装(抽象类或接口)。 (2) 优先使用聚合而不是继承。 (3) 按接口进行编程。 上述三条建议体现了软件设计时应用设计模式的核心思想。 本书通过对这23种设计模式进行精心挑选,选择其中十余种设计模式进行讲解。对于每种设计模式,重点讲述其应用场景、解决方案及效果等。 本书一共有6章,可分为以下三个部分。 第一部分为设计模式基础知识篇,主要讲解面向对象基本知识、UML基本知识及设计模式的概念。 第二部分为设计模式篇,主要讲解三大类若干设计模式及其应用。这些设计模式包括创建型模式、结构型模式、行为型模式等,以及专家设计经验用模式组合方法来解决问题。 第三部分为设计模式提高篇,主要讲解一些较为复杂的设计模式,并通过设计模式的应用达到对软件设计高层次的复用和为复杂场景需求变化提供解决方案。 本书具有以下特点。 (1)实例驱动。 对讲解的每种设计模式,给出一个相关的实例,结合UML类图和交互图,侧重讲述设计模式的应用场景和解决方案。通过实例分析,使学生能够掌握每种设计模式的基本原理和应用。 (2)提供完整解决方案的源程序代码和习题。通过程序代码和习题使学生能更好地理解每种设计模式的应用和解决方案,达到抛砖引玉的效果。本书由西安理工大学计算机学院王竹荣副教授和黑新宏教授任主编,王战敏老师参与了本书的第一部分的编写,并校核了本书所有章节内容。硕士研究生朱敏、赵瑞琴、徐凌风、王琭琛、周静、韩聪和牛亚邦参与书中部分章节的编写,硕士研究生朱敏参与书中程序的整理、调试和编排。本书是编者十多年从事软件工程专业软件设计模式课程教学经验的凝结。在编写中参照和引用了国内外一些教材和网络资源的相关内容,在此表示诚挚的感谢。本书在编写中也得到西安理工大学计算机学院领导的支持,在此一并予以感谢。最后特别感谢电子工业出版社孟宇编辑为本书出版所付出的努力。 最后,引用屈原在《离骚》中的一句诗词来表达我们在软件设计探索中的心情,“路漫漫其修远兮,吾将上下而求索”。希望每名学生在学习中不畏艰难,并拥有美好的明天。 由于时间及编者认识有限,书中难免存在不足和错误,恳请广大读者和专家将意见和建议反馈给我们,以便我们后续改进和完善。 编者 2021年9月于古都西安

目录

目  录 第一部分设计模式基础篇 第1章面向对象基础和UML简介 1.1面向对象基础 1.1.1面向对象的基本概念 1.1.2面向对象解决方案 1.1.3面向对象设计原则 1.1.4面向对象解决方案的类图和效果 练习题1 1.2UML简介 1.2.1UML的基本概念 1.2.2类图 1.2.3交互图 1.2.4小结 第2章设计模式简介 2.1设计模式的产生和发展 2.2从建筑设计模式到软件设计模式 2.3软件设计模式的定义和分类 2.4学习设计模式的优点 练习题2.1第二部分设计模式篇 第3章创建型模式 3.1工厂方法模式 3.1.1工厂方法模式应用需求 3.1.2工厂方法模式解决方案 3.1.3工厂方法模式的简化 3.1.4工厂方法模式关键特征 3.1.5程序代码 练习题3.1 3.2单例模式 3.2.1单例模式应用需求 3.2.2单例模式解决方案 3.2.3单例模式在多线程的应用 3.2.4单例模式关键特征 3.2.5程序代码 练习题3.2 3.3抽象工厂模式 3.3.1抽象工厂模式应用需求 3.3.2抽象工厂模式解决方案 3.3.3抽象工厂模式应用效果 3.3.4抽象工厂模式关键特征 3.3.5抽象工厂模式扩展 3.3.6程序代码 练习题3.3 3.4原型模式 3.4.1原型模式 3.4.2原型模式的应用 3.4.3浅复制和深复制 3.4.4原型模式关键特征 3.4.5程序代码 练习题3.4 第4章结构型模式 4.1外观模式 4.1.1外观模式应用需求 4.1.2外观模式解决方案 4.1.3外观模式应用的几种情形 4.1.4外观模式关键特征 4.1.5程序代码 练习题4.1 4.2适配器模式 4.2.1适配器模式应用需求 4.2.2对象适配器模式解决方案 4.2.3适配器模式应用扩展 4.2.4适配器模式关键特征 4.2.5程序代码 练习题4.2 4.3桥接模式 4.3.1桥接应用需求 4.3.2桥接模式解决方案 4.3.3桥接模式的更多讨论 4.3.4桥接模式关键特征 4.3.5程序代码 练习题4.3 4.4装饰器模式 4.4.1装饰器模式应用需求 4.4.2装饰器模式解决方案 4.4.3应用装饰器模式动态增加对象功能 4.4.4装饰器模式关键特征 4.4.5程序代码 练习题4.4 第5章行为型模式 5.1策略模式 5.1.1策略模式应用需求 5.1.2策略模式解决方案 5.1.3策略模式关键特征 5.1.4程序代码 练习题5.1 5.2模板方法模式 5.2.1模板方法模式应用需求 5.2.2模板方法模式解决方案 5.2.3模板方法模式与策略模式对比 5.2.4模板方法模式关键特征 5.2.5程序代码 练习题5.2 5.3观察者模式 5.3.1观察者模式应用需求 5.3.2观察者模式解决方案 5.3.3观察者模式关键特征 5.3.4程序代码 练习题5.3 5.4解释器模式 5.4.1解释器模式应用需求 5.4.2解释器模式解决方案 5.4.3解释器模式关键 特征 5.4.4程序代码 练习题5.4 5.5备忘录模式 5.5.1备忘录模式应用需求 5.5.2备忘录模式解决方案 5.5.3备忘录模式关键特征 5.5.4程序代码 练习题5.5 5.6迭代器模式 5.6.1迭代器模式应用需求 5.6.2迭代器模式解决方案 5.6.3迭代器模式关键特征 5.6.4程序代码 练习题5.6第三部分设计模式提高篇 第6章专家经验——用模式组合的 方法解决问题 6.1应用模式组合解决设计问题 6.1.1开闭原则 6.1.2封装变化原则 6.1.3从背景设计原则 6.2应用模式组合解决设计问题的步骤 6.2.1模式组合解决问题:步骤1 6.2.2模式组合解决问题:步骤2a 6.2.3模式组合解决问题:步骤2b 6.2.4模式组合解决问题:重复步骤2a和步骤2b 6.2.5模式组合解决问题:重复步骤2a和步骤2b 6.3不同解决方案的对比分析 练习题6 第7章利用设计模式解决复杂问题 7.1共性与可变性分析 7.2分析矩阵 7.3模式关联分析 7.4设计模式的应用 练习题7 参考文献 附录 1.创建型模式 1.1工厂方法模式 1.2单例模式 1.3抽象工厂模式 1.4原型模式 2.结构型模式 2.1外观模式 2.2适配器模式 2.3桥接模式 2.4装饰模式 3.行为模式 3.1策略模式 3.2模板方法模式 3.3观察者模式 3.4解释器模式 3.5备忘录模式 3.6迭代器模式

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个