温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
人人
设计
模式
生活
领悟
Python
实现
内 容 简 介 设计模式(Design Patterns)是一套被反复使用、多数人知晓、无数工程师实践的代码设计经验的总结,它是面向对象思想的高度提炼和模板化。本书带你一起从生活的角度思考设计模式,以轻松有趣的小故事开始,由浅入深地讲解每一种模式,思考每一种模式,总结每一种模式!力求用更通俗的语言阐述难懂的概念,用更简单的语法实现复杂的逻辑,用更短小的代码写出强悍的程序!使枯燥乏味的概念变得更有乐趣和意义,希望能带给读者一种全新的阅读体验和思考方式。本书分为 3 篇:“基础篇”讲解了 23 种经典设计模式,其中 19 种常用设计模式分别用单独的章节讲解,其余模式作为一个合集放在一章中讲解;“进阶篇”讲解了由基础设计模式衍生出的各种编程机制,包括过滤器模式、对象池技术、回调机制和 MVC 模式,它们在各大编程语言中都非常重要而且常见;“经验篇”结合工作经验和项目积累,分享了对设计模式、设计原则、项目重构的理解和看法。Python 作为 AI 时代最重要的一种计算机语言,在各大语言中的排名逐年上升!本书所有示例代码均用 Python 编写,将会是国内不可多得的一本用 Python 来讲解设计模式的书。本书适合的读者:一线互联网软件开发者、有一定编程基础的 IT 职场新人、对设计模式和编程思想感兴趣的人士。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 人人都懂设计模式:从生活中领悟设计模式:Python 实现/罗伟富著.北京:电子工业出版社,2019.4 ISBN 978-7-121-36112-8 .人.罗.软件工具程序设计.TP311.561 中国版本图书馆 CIP 数据核字(2019)第 042374 号 责任编辑:董 英 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:787980 1/16 印张:25.25 字数:580 千字 版 次:2019 年 4 月第 1 版 印 次:2019 年 4 月第 1 次印刷 定 价:79.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:010-51260888-819,。前言 三年前,CSDN 推出了一个产品ink,旨在提供一个高质量写作环境。那时,我想写一系列关于设计模式的文章,于是就在 ink 里开始写作,陆陆续续写了三篇文章,后来不知道什么原因这个产品下架了,我的三篇文章也没了,这事也就一直被我搁置下来。直到 2017 年,知识付费盛行,各类付费的社区、产品如雨后春笋般崛起,而技术类的付费阅读产品更是大行其道(GitChat 便是其中一种)。在 GitChat 的盛情邀请之下,我写作设计模式这一系列文章的想法又重新被点燃。2017 年年底,我开始在 GitChat 上写“从生活中领悟设计模式(Python)”课程。2018 年,我对这一课程进行了一次升级。随着这一课程被越来越多的读者熟知,不少出版社编辑找到我,他们觉得这一课程的内容非常有特色,希望能把它重新整理,仔细打磨,出版成书,于是便有了本书。本书的特色 设计模式作为面向对象程序的设计思想和方法论,本身是非常抽象和难以理解的,需要有一定的代码量和编程经验才能更深入地理解。如果能用一种有趣的方式来讲解设计模式,将会使这些枯燥乏味的概念变得更易于理解!本书每一章以一个轻松有趣的小故事开始,然后用代码来模拟故事剧情,再从模拟代码中逐步提炼出设计模式的模型和原理,最后配合一个具体的应用案例,告诉你每一种模式的使用方法和应用场景。以由浅入深的方式带你了解每一种模式,思考每一种模式,总结每一种模式。本书力求用更通俗的语言阐述难懂的概念,用更简单的语法实现复杂的逻辑,用更短小的代码写出强悍的程序!希望能带给读者一种全新的阅读体验和思考方式。人人都懂设计模式:从生活中领悟设计模式(Python 实现)IV 内容概述 本书分为 3 篇:“基础篇”讲解了 23 种经典设计模式,其中 19 种常用设计模式分别用单独的章节讲解,其余设计模式作为一个合集放在一章中讲解;“进阶篇”讲解了由基础设计模式衍生出的各种编程机制,包括过滤器模式、对象池技术、回调机制和 MVC 模式,它们在各大编程语言中都非常重要而且常见;“经验篇”结合工作经验和项目积累,分享了对设计模式、设计原则、项目重构的理解和看法。读者对象 一线互联网软件开发者 如果你想提升面向对象的思维方式,提高自己的软件设计能力,本书会对你非常有帮助。本书每一章会抽象和总结出对应设计模式的模型和原理,并结合具体的应用案例告诉你该模式的应用场景、特点和注意事项。IT 职场新人 如果你是 IT 新人,想通过学习设计模式来提升自己的技术能力和代码理解能力,本书将非常适合你。本书每一章以一个轻松有趣的小故事开始,由浅入深地讲述一个模式,让你轻松愉悦地学会每一种模式。对设计模式和编程思想感兴趣的人士 设计模式能让你的代码具有更高的可重用性、更好的灵活性和可拓展性,更易被人阅读和理解,因此学习设计模式是每一个程序员编程生涯中必不可少的一个环节。为什么叫设计模式 什么是设计模式 设计模式最初是由 GoF 于 1995 年提出的。GoF 全称是 Gang of Four(四人帮),即 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides。他们四人于 1995 年出版了一本书 前言 V Design Patterns:Elements of Reusable Object-Oriented Software(翻译成中文是设计模式:可复用面向对象软件的基础),第一次将设计模式提升到理论高度,并将之规范化,该书提出了 23种经典的设计模式。设计模式是一套被反复使用、多数人知晓、无数工程师实践的代码设计经验的总结,它是面向对象思想的高度提炼和模板化。使用设计模式是为了让代码具有更高的可重用性、更好的灵活性和可拓展性,更易被人阅读和理解。设计模式与生活有什么联系 我一直坚信:程序源于生活,又高于生活!程序的灵魂在于思维的方式,而思维的灵感来源于精彩的生活。互联网是一个虚拟的世界,而程序本身就是对生活场景的虚拟和抽象,每一种模式我都能在生活中找到它的影子。比如,说到状态模式,我能想到水有固、液、气三种状态,而人也有少、壮、老三个阶段;提起中介模式,我能立刻想到房产中介;看到装饰模式,我能联想到人的穿衣搭配 设计模式是面向对象的高度抽象和总结,而越抽象的东西越难以理解。本书的写作目的就是降低设计模式的阅读门槛,以生活中的小故事开始,用风趣的方式,由浅入深地讲述每一种模式。让你再次看到设计模式时,不觉得它只是一种模式,还是生活中的一个“小确幸”!程序不是冷冰冰的代码,它还有生活的乐趣和特殊意义。为什么要学设计模式 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验总结出来的。所以不管你是新手还是老手,学习设计模式对你都有莫大的帮助。学习设计模式的理由有很多,这里只列出几个最现实的:(1)摆脱面试的窘境,不管你是前端工程师还是后端工程师,或是全端工程师,设计模式都是不少面试官必问的。(2)让你的程序设计能力有一个质的提升,不再写一堆结构复杂、难以维护的烂代码。(3)使你对面向对象的思想有一个更高层次的理解。如何进行学习 熟悉一门面向对象语言 首先,你至少要熟悉一门面向对象的计算机语言。如果没有,请根据自己的兴趣、爱好或人人都懂设计模式:从生活中领悟设计模式(Python 实现)VI 希望从事的工作,先选择一门面向对象语言(C+、Java、Go 等都可以)进行学习和实战,对抽象、继承、多态、封装有一定的基础之后,再来阅读本书。了解 Python 的基本语法 对 Python 的基本语法有一个简单了解。Python 的语法非常简单,只要你有一定的(其他)编程语言基础,通过“第 0 章 启程之前,请不要错过我”的学习就能很快地理解 Python 的语法。学会阅读 UML 图 UML(Unified Modeling Language)称为统一建模语言或标准建模语言,是面向对象软件的标准化建模语言。UML 类图表示不同的实体(人、事物和数据)如何彼此相关,换句话说,它显示了系统的静态结构。想进一步了解类图中的各种关系,可参考阅读“第 0 章 启程之前,请不要错过我”的“0.2 UML 精简概述”部分。阅读本书 通过阅读本书内容,可以轻松愉快地学习设计模式和编程思想。本书“基础篇”“进阶篇”“经验篇”的内容是逐步进阶和提升的,但每一篇内的不同章之间是没有阅读的先后顺序的(第0 章和有特殊说明的除外),每一章都单独成文,可从任意一章开始阅读。例如,对于基础篇的23 种设计模式,你可以从中任意挑选一章开始阅读。为什么选择 Python 虽然设计模式与编程语言没有关系,它是对面向对象思想的灵活应用和高度概括,你可以用任何一种语言来实现它,但总归是需要用一种语言进行举例的。本书的所有示例代码均使用Python 编写(有特殊说明的除外),选择 Python 主要基于以下两个原因。弥补市场空缺 设计模式于 1995 由 GoF 提出,被广泛应用于热门的面向对象语言。目前用 Java、C+描述的设计模式的书籍和资料已经非常多了,但用 Python 来描述的真是太少了;我在当当网上搜索“Python 设计模式”,只有零星的几本书。而对于编程语言中排名前三的 Python 语言,这明显是不够的。Python 已经越来越成熟,也越来越多地被使用,作为一个有技术追求的 IT 人,有必要了解一下基于 Python 代码的设计模式。前言 VII 大势所趋,Python 已然成风 C 语言诞生于 1972 年,却随着 UNIX 的诞生才深深根植于各大操作系统;C+诞生于 1983年,却因微软的可视化桌面操作系统才得以广泛传播;Java 诞生于 1995 年,却因互联网的迅速崛起才变得家喻户晓;Python 诞生于 1991 年,而下一场技术革命已然开始,AI 时代已然到来,在 AI 领域中已经被广泛使用的 Python 必将成为下一个时代的第一开发语言!最热门的 AI 开源框架 PyTorch 和 TensorFlow 都已经采用了 Python 作为接口和开发语言。除此之外,还有一堆 AI 相关的框架库,也都纷纷采用了 Python,如 SKlearn、PyML 等。一门如此有前途的语言,我们必然是要去学习和使用的。勘误和支持 由于本人水平和经验有限,书中难免会有一些错误或理解不准确的地方,恳请广大读者批评指正。如果你在阅读过程中发现错误,或有更好的建议,欢迎发邮件给我(E-mail:luoweifu ,永久有效)。最新的勘误内容可通过以下方式查看:关注公众号“SunLogging”,在菜单栏中选择“我的书箱”“最新勘误”。致谢 从在 GitChat 上写课程,到与出版社合作,写完本书的书稿,大概经历了一年半的时间,经过无数次与编辑的反复校对。写作是一件非常考验人耐心和细心的事,为了让读者更易理解,有些章节我进行了反复的推敲和修改。比如,为了讲清楚单例模式的每一种实现方式的原理,硬是增加了两个附录,阅读了十几篇文章,并做了验证性的实验,整整花了三周时间才写完。感谢每一位在本书写作过程中给予帮助的人,是你们的鼓励和支持,才让本书能顺利完成。在此,要特别感谢电子出版社的首席策划编辑董英,在写书过中给予的诸多建议;也感谢 GitChat的编辑马翠翠,在写线上课程“从生活中领悟设计模式(Python)”时给予的很多帮助;还要感谢 Sophia“小朋友”,在封面设计过程中提出的非常细致的改进意见!最后,我也要感谢我的朋友和同事对我写书的鼓励和支持。