教育>高职高专>计算机类
软件设计原则与模式——基于Java/Python语言实现(微课版)  

软件设计原则与模式——基于Java/Python语言实现(微课版)  "

作者:郭双宙,李凯
ISBN:9787121439155
定价:¥42.0
字数:336千字
页数:200
出版时间:2022-07
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

软件设计模式分为三大类型:创建型、结构型和行为型。本书共4章,分别讲解三大类型中常用的14种模式,每种模式都以典型问题为案例,由相应的设计模式给出最佳解决方案,在每章的后半部分都有相应的案例,并分别用Java和Python语言实现,以帮助读者快速理解和掌握这些模式,体现教、学、做一体的教学理念。本书适合作为高等职业院校计算机软件专业的教材,也可供从事软件开发与测试维护的初、中级人员参考。

前言

编程从某种意义上说是一门“手艺”,因为优雅而高效的代码就如同完美的手工艺品,让人赏心悦目。在雕琢代码的过程中,大有讲究,比如应该用什么架构、哪种模式,还有更多的小细节,比如何时使用异常、怎么给变量起名等。 真正优秀的代码,是由无数优秀的细节构成的。 本书要讲解的设计模式其实就是对经常发生的问题提出的解决方案,这种方案经过无数人的测试、使用,千锤百炼之后几乎无懈可击。本书选择的案例都是经过实践、锤炼、选优后的程序,极具参考价值,对学生学习设计模式和Java/Python语言都有极大帮助。 在现实情况中,很多人不使用某种设计模式是因为不了解它的优点,认为这种设计模式很复杂。其实,设计模式的“复杂”就在于它要构造一把“万能钥匙”,提出一种对所有锁适用的开锁方案。对程序员来说,掌握这把“万能钥匙”的好处实在太多了。 很多程序员在接触设计模式之后,有一种相见恨晚的感觉。有人在学习了设计模式之后,感觉自己好像已经脱胎换骨,达到了新的境界。还有人甚至把是否了解设计模式作为划分程序员编程水平的标准。 本书共4章,分为两部分:第1部分(第1章)是设计原则简介及必要的UML知识;第2部分(第2~4章)详细介绍了14种设计模式,每种设计模式都有一个与之适应的、浅显易懂的例子作为引子,并有详细的UML结构设计图及相对应的可运行程序,以帮助读者理解所学的设计模式。 本书简单易懂,把设计模式的学习门槛降到了最低,使初学者更加容易理解、掌握14种设计模式。书中的每个程序都力求简洁明了、易学易用。本书数万行的Java/Python代码既可以使读者学习14种常用的设计模式,又可以使读者熟悉Java和Python语言,可谓一举两得。 本书使用的程序开发工具分别为MyEclipse和PyCharm-Professional。制图软件为Enterprise Architect,或使用AmaterasUML插件在MyEclipse中制作结构图。 本书由郭双宙、李凯担任主编,由张鼎开担任副主编,参加编写工作的还有宋戈、梁金兰。其中,郭双宙负责全书的规划与整体设计,编写全书的主要部分,并负责全书的统稿工作;李凯负责1.2节、3.1节的编写工作,并对本书提供了建设性的建议;张鼎开负责1.3节、2.3节的编写工作;宋戈负责3.3节的编写工作;梁金兰负责1.1节、4.2节的编写工作。 为了方便教师教学,本书配有电子教学课件及相关资源,有此需要的教师可以登录华信教育资源网(www.hxedu.com.cn)免费下载。如果有问题,可以在网站的留言板留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn)。 教材的编写是一项系统工程,需要在实践中不断完善和改进。同时,由于时间仓促、编者水平有限,书中难免存在疏漏和不足之处,敬请同行专家和广大读者给予批评和指正。 编 者

目录

第1章 软件设计原则与UML简介 1 1.1 开闭原则 2 1.1.1 应用实例:银行业务 2 1.1.2 银行业务实现 3 1.1.3 练习 7 1.2 里氏替换原则 11 1.2.1 预备知识 11 1.2.2 里氏替换原则简介 11 1.2.3 “乘马说”Java实现 12 1.2.4 经典实例:鸵鸟非鸟 13 1.3 依赖倒置原则 16 1.3.1 Java应用实例 16 1.3.2 依赖倒置原则的意义 16 1.3.3 依赖倒置原则的优点 17 1.3.4 依赖倒置原则的例子 17 1.3.5 练习数据访问MySQL/Oracle 18 1.4 接口隔离原则 21 1.5 合成/聚合复用原则 23 1.5.1 应用实例 24 1.5.2 练习 25 1.6 迪米特法则 29 1.6.1 迪米特法则简介 29 1.6.2 违反迪米特法则的设计与实现 30 1.6.3 遵守迪米特法则的设计与实现 32 1.7 单一职责原则 34 1.7.1 应用实例:用户信息管理系统 34 1.7.2 用户信息管理系统设计与Java实现 35 1.7.3 用户信息管理系统Python实现 37 1.8 UML简介 38 1.8.1 依赖 38 1.8.2 关联 39 1.8.3 聚合 39 1.8.4 组合 39 1.8.5 泛化 40 1.8.6 实现 40 1.9 设计模式简介 40 第2章 创建型模式 42 2.1 简单工厂模式 42 2.1.1 简单工厂模式的结构 43 2.1.2 应用系统登录Java实现 43 2.1.3 简单工厂模式的优缺点 46 2.1.4 练习 46 2.2 工厂方法模式 52 2.2.1 工厂方法模式的结构 53 2.2.2 练习 55 2.3 抽象工厂模式 63 2.3.1 抽象工厂模式的起源 63 2.3.2 抽象工厂模式的结构 64 2.3.3 抽象工厂模式的优缺点 67 2.3.4 练习 67 2.4 单例模式 70 2.4.1 单例模式的结构 70 2.4.2 单例模式常见的应用场景 70 2.4.3 单例模式的类型 71 2.4.4 练习 75 2.5 多例模式 78 2.5.1 多例模式结构 78 2.5.2 练习 79 第3章 结构型模式 86 3.1 适配器模式 86 3.1.1 适配器模式的结构 87 3.1.2 电源适配器实现 90 3.1.3 适配器模式的优缺点 92 3.1.4 练习 93 3.2 默认适配器模式 96 3.2.1 默认适配器模式的结构 97 3.2.2 练习 99 3.3 装饰模式 102 3.3.1 应用实例:孙悟空七十二般变化 102 3.3.2 装饰模式的结构 103 3.3.3 “孙悟空七十二般变化”Java实现 105 3.3.4 装饰模式的简化 108 3.3.5 装饰模式进阶 109 3.3.6 练习 110 3.4 门面模式 117 3.4.1 什么是门面模式 118 3.4.2 门面模式的结构 118 3.4.3 门面模式在实际开发中的应用场景 118 3.4.4 门面模式进阶 120 3.4.5 练习 120 第4章 行为型模式 126 4.1 策略模式 126 4.1.1 应用实例:旅游出行 126 4.1.2 策略模式的结构 127 4.1.3 策略模式源代码 127 4.1.4 认识策略模式 129 4.1.5 策略模式的优缺点 129 4.1.6 排序策略系统Java实现 130 4.1.7 练习 136 4.2 模板方法模式 140 4.2.1 模板方法模式的结构 141 4.2.2 模板方法模式中的方法 141 4.2.3 “西天取经八十一难”Java实现 143 4.2.4 模板方法模式进阶 144 4.2.5 练习 146 4.3 命令模式 150 4.3.1 命令模式的结构 150 4.3.2 应用实例:玉帝宣美猴王上天 153 4.3.3 命令模式解析 153 4.3.4 命令模式和策略模式的区别 154 4.3.5 命令模式的优缺点 155 4.3.6 练习 155 4.4 状态模式 164 4.4.1 状态模式的结构 165 4.4.2 练习 168 4.5 观察者模式 175 4.5.1 观察者模式结构 175 4.5.2 观察者模式模型 176 4.5.3 两种模式的比较 182 4.5.4 练习 182 参考文献 192

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个