Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >永远无法在游泳池里学会海战--《实战Python设计模式》新书介绍

永远无法在游泳池里学会海战--《实战Python设计模式》新书介绍

原创
作者头像
面向对象思考
修改于 2020-03-31 02:00:43
修改于 2020-03-31 02:00:43
6770
举报

《实战Python设计模式:实战Python设计模式:可复用面向对象软件开发实践 》是本人根据自己在实际开发工作中积累的有关Python语言,设计模式的经验,想法写成的一本书,由电子工业出版社出版。谨此推荐给各位。

作为可复用面向对象软件开发的基础,设计模式集合了很多软件开发领域专家的宝贵经验和良好实践,其重要性不言而喻。但是,学习设计模式的过程并不是一帆风顺的,对于缺乏面向对象开发经验的设计者尤其如此。

就像在游泳池中不能学会海战一样,我们不应该指望理解几个似是而非的例子就可以在实际开发中灵活运用设计模式。学习设计模式最好的方式就是在实际的开发中边学边练边体会。本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一

方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。

写书不是一件容易的事,因为许多自以为想得很清楚的事情,一旦用文字来表达总感觉有些语焉不详。同时,将自己写的代码公开需要很大的决心,代码的规范性、正确性等都是需要考虑的问题。幸运的是,各位读者还是看到了这本书。笔者认为,对于那些刚接触面向对象开发的人,或者已经具备基本知识却不知道如何运用的开发者,拥有一本结合开发实践Python 设计模式的书是很有必要的。笔者结合自己二十多年的开发工作经验,将关于面向对象和设计模式的知识通过Python 语言展示给各位读者。面向对象、设计模式的初学者通过本书可以快速入门;已经基本掌握设计模式的开发者通过本书可以理解设计模式在实际开发中的运用,从而能够合理、有效地选择设计模式。

关于设计模式

在实际开发中运用设计模式有利于设计出扩展性更好、更规范的软件架构。在软件开发过程中,总有部分内容是设计者凭直觉得出的结论,但是凭直觉得出的结论不可避免地会出现不易理解的内容。通过运用设计模式,可以在另一个高度上审视自己的设计。面向对象的开发很多时候是基于规则的,越早使用规则,越能在早期发现问题,越能开发出独立性强、扩展性好的软件,而设计模式就是经过实践证明的诸多规则的最佳实践。

理解了设计模式相当于掌握了一种更高级的设计语言。在考虑设计方案时,一个设计模式的名称就可以表达很多信息,这样可以大大节约设计的时间,提高沟通的效率。笔者身边很多程序员的记忆力非常好,很擅长调试程序,但是让他们描述自己的设计,他们却会感觉很困难。这时如果使用设计模式语言,就可以大大改善这种状况。设计模式语言可以让开发者之间的沟通更顺畅,让设计资料的思路更清晰。

本书的构成

在本书中提到的设计模式都是面向对象领域耳熟能详的内容,为了让读者更好地理解这些内容,本书通过如下方式对其进行说明。

1.问题说明

本书力争通过PyExecutor 中的实例,使读者理解设计模式想要解决的问题。问题说明部分的内容可以看作设计模式的运用场景,而理解场景和设计模式的关系正是选择和运用设计模式的关键。当然,设计模式的运用场景并不限于问题说明中的实例,这一点请读者务必理解。

2.模式结构

设计模式是若干类协同完成复杂功能的方式,模式结构用来说明设计模式中每个类的职责、分工,以及类与类之间是如何协同工作的。读者通过阅读这部分内容,可以对设计模式有一个大致理解。模式结构重点说明的是设计模式的静态信息,其动态信息可以结合示例代码进行理解。

3.示例代码

为了让读者对模式结构中的内容加深理解,示例代码会提供可以执行的代码。代码的内容可能是模式结构的简单实现,也可能会结合一个简单的示例,总之不会离设计模式本身的内容太远。所有代码都是可以执行的,读者最好在自己的电脑上输入并调试这些代码,这样可以加深对设计模式的理解,因为很多东西只有在程序运行时才能看出来。

4.实战运用

示例软件PyExecutor 包含了书中介绍的23 个设计模式。如果原封不动地照搬设计模式,是无法获得理想的结果的。无论是设计模式本身,还是运用设计模式的对象,都需要根据实际情况进行相应调整,实战运用中的内容就是这方面的示例。由于PyExecutor 的规模比较大,所以本书不会展示其所有代码,读者最好通过下载链接获得代码,再结合书中的说明,边调试边理解代码。

5.效果讨论

效果讨论主要用来说明使用设计模式可以解决的问题,以及设计模式为软件带来的优势。通过对示例的说明,读者已经对设计模式有了自己的认识,这时再去理解设计模式,可以达到事半功倍的效果。

6.提示和技巧

任何事物都不可能只有优点没有缺点,设计模式也是如此。提示和技巧一方面会说明使用设计模式的注意事项,另一方面也会提供一些深入运用设计模式的建议。

阅读本书的几点建议

设计模式多种多样,其本质就是对需要替换的、变更的内容进行抽象处理,然后再运用多态技术对功能进行扩展,简单地讲就是,想变什么就抽象什么,这应该是学习和理解设计模式的最重要的9 个字了。

在学习设计模式时经常遇到的一个问题就是,很多设计模式的类图都很相似,在实际运用时不知道应该选择哪一个。出现这个问题的最大原因就是将类图当成设计模式的依据了。由于面向对象设计唯一的“大招”就是多态,所以很多设计模式的构造看起来或多或少都有些相似。比较合理的步骤是先根据场景选择设计模式,然后根据设计模式构造(形式)调整类的职责、接口和协作关系。

有些开发者反对设计模式的一个原因就是,使用设计模式容易出现过度设计。关于这个问题,笔者的观点是:过度设计当然不好,但是这并不是设计模式的错,而是开发者的问题。这和难以理解的接口、混乱的代码是同样的问题。为避免过度设计就不花时间和精力使用设计模式进行设计,就有点因噎废食了。

程序员的语言

将自己写的代码公开需要很大的勇气,有很多程序员甚至不敢在自己写出的代码上签名。在本书中使用的PyExecutor 是笔者为了说明设计模式而开发的一个模拟项目,由于时间和能力的限制,书中的代码只写到能将设计模式讲清楚的程度,离真正的产品还有很远的距离。如果读者希望将这些代码运用到自己的工作中,那么还需要对其进行完善和改进。书中关于设计模式、Python 语言和tkinter 库的用法也有不足之处,恳请各位读者批评指正。

致谢

感谢电子工业出版社的林瑞和编辑。本书从立意、结构的确定到内容的确认和整理,每个环节都得到了林编辑的建议和意见。毫不夸张地说,如果没有林编辑的努力,就不会有本书的面世。感谢我的父母。他们两个人都没有读过什么书,但是他们不遗余力地培养孩子读书,时至今日,我们兄弟几人虽说没有出人头地,但做到了自食其力。

感谢我的夫人。夫人本来也是一个学霸,自结婚以后,她将大部分时间都花在家庭、孩子上,但是她一直无怨无悔。

感谢我的两个孩子。孩子们为这个家庭带来了活力,他们在自己成长的同时也见证了父母的成长。在本书写作过程中,他们也做出了自己的贡献。目前两个孩子都处在成长的重要阶段,在此希望我可以为他们树立榜样。

相关下载链接:

本书相关代码,示例逻辑都可以从以下链接下载:

http://www.broadview.com.cn/book/5920


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深度学习架构的设计模式:介绍
深度学习架构可以被描述为建立机器学习系统的新方法或风格。深度学习更有可能导致更先进的人工智能形式。这方面的证据是自十年来以来发生的巨大突破。在新的乐观的氛围中,我们现在又在一个新的AI春天。不幸的是,目前的深度学习状态似乎有太多的类似于炼金术的方式。每个人似乎都有自己的黑魔法设计架构的方法。因此,该领域需要向前迈进,争取化学,或者甚至可以进行深度学习的周期表。虽然深入学习仍处于发展初期阶段,但本书力求在深入学习中形成一些统一的思想。它利用称为模式语言的描述方法。 模式语言是从称为模式的实体衍生而来的语言,当
架构师研究会
2018/04/09
1.6K0
深度学习架构的设计模式:介绍
程序员学习编程设计模式网站推荐
本文将给你分享一款超级实用的设计模式学习网站。在学习设计模式之前,首先我们需要知道为什么学习设计模式?如何有一个正确的、高效的学习设计模式?下图罗列出个人在学习设计模式过程中的一个大致学习思路:
兔云小新LM
2021/06/03
8930
程序员学习编程设计模式网站推荐
模式的模式:从设计模式到元模式
最近的一两个月里,我一直在研究各类的模式:设计模式、架构模式、容器模式,以及其它一些特定领域的模式(如并行计算模式)等等。
Phodal
2021/04/23
8430
模式的模式:从设计模式到元模式
和 lvgo 一起学设计模式(零)序
Java 设计模式专题,共 23 种设计模式。摒弃应用并非本末倒置,知其然而知其所以然,
星尘的一个朋友
2020/11/25
4080
和 lvgo 一起学设计模式(零)序
2w行代码、200个实战项目,助你修炼5大编程基本功。【送书《设计模式之美》】
大家好,我是若川。之前送了很多书,现在又和异步图书合作再次争取了几本书,具体送书规则看文末。
若川
2022/11/11
2740
2w行代码、200个实战项目,助你修炼5大编程基本功。【送书《设计模式之美》】
设计模式、重构、编程规范等的经典书籍书籍推荐
有关设计模式、重构、编程规范等的经典书籍很多,有很多你应该已经听说过、甚至看过。今天,我就结合我的经验,对这些书籍进行一个整理和点评。你可以据此来选择适合你的书籍,结合着专栏一块儿来学习,这样学习效果会更好。
用户8826530
2021/07/16
7K0
设计模式、重构、编程规范等的经典书籍书籍推荐
《重学 Java 设计模式》PDF 出炉了 - 小傅哥,肝了50天写出18万字271页的实战编程资料
❝沉淀、分享、成长,让自己和他人都能有所收获!?❞ 一、前言 我膨胀了?,在编写完上一本PDF《字节码编程》被下载了2000份以后,蠢蠢欲动开始计划第二本。于是从?5月20日那天投身实战型设计模式打磨
小傅哥
2020/07/14
1.1K0
Python 中最简最好的设计模式
Python 诞生于1991年,而下一场技术革命已然开始,AI 时代已然成风。在 AI 领域中已经被广泛使用的 Python 必将成为下一个时代的第一开发语言!
py3study
2020/01/08
1.1K0
「聊设计模式」之前世今生
🏆本文收录于《聊设计模式》专栏,专门攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎持续关注&&收藏&&订阅!
bug菌
2023/11/22
3280
「聊设计模式」之前世今生
程序员必读的六本书
作为一名程序员,日常的工作除了上班撸代码就是加班撸代码了。撸码其实不难,无非询问Google,StackOverflow,解决方法和demo一箩筐,可是撸的一手好代码着实不易。无独有偶,码农一抓一大把,优秀的程序员却不易寻觅。优秀的程序员既不可能出自各种天花乱坠的培训机构,更不可能来自挖掘机摇篮山东布鲁斯特,大多数优秀的程序员有一个共同点,那就是自学。
技术小黑屋
2018/09/05
7210
程序员必读的六本书
关于设计模式的思考
为什么叫设计模式 什么是设计模式 设计模式最初是被 GoF 于1995年提出的。GoF 全称是Gang of Four(四人帮),即 Erich Gamma,Richard Helm,Ralph Johnson 和 John Vlissides。他们四人于1995年出版了一本书 <Design Patterns: Elements of Reusable Object-Oriented Software>(中文翻译为“设计模式:可复用面向对象软件的基础”),第一次将设计模式提升到理论高度并将之规范化。该书提
CSDN技术头条
2018/03/26
9190
关于设计模式的思考
多核普及时代下的Java 多线程编程与设计模式
随着现代CPU 的生产工艺从提升CPU 主频频率转向多核化,即在一块芯片上集成多个CPU内核(Core),以往那种靠CPU 自身处理能力的提升所带来的软件计算性能提升的“免费午餐”不复存在。
博文视点Broadview
2020/06/11
6450
学习设计模式,你需要这样一份书单!
《O'Reilly:Head First设计模式(中文版)》趋近完美,因为它在提供专业知识的同时,仍然具有相当高的可读性。
程序员黄小斜
2020/06/12
3720
书单 | 一季度重磅级上榜新书!
👆点击“博文视点Broadview”,获取更多书讯 转眼间,2022年已经过去了一个季度,年初的Flag你可有在按部就班地进行呢? 本期书单就为大家分享10本一季度的重磅级畅销新书,一季度的好书实在是太多了,下面每一本都是博文菌忍痛割爱、精挑细选出来的不可错过的好书,希望可以帮助大家有条不紊地将年初的学习计划进行下去哦! ----   01 ▊《隐私计算(全彩)》 陈凯,杨强  著 系统揭秘隐私计算 全面驾驭数据要素 本书系统讲解了隐私计算的基础技术和实践案例,全书共有11 章,按
博文视点Broadview
2022/04/02
7270
书单 | 一季度重磅级上榜新书!
[C++设计模式] 为什么需要设计模式?
设计模式(Design Pattern)是对软件开发过程中反复出现的设计问题所提供的通用解决方案。它不是代码,而是经过验证的“最佳实践”,以一种结构化的方式记录了解决问题的思想。
DevKevin
2024/12/04
1740
[C++设计模式] 为什么需要设计模式?
OMG!Go语言设计模式,这样用简直不要太爽!
👆点击“博文视点Broadview”,获取更多书讯 【内容概览】 1. 为什么需要设计模式 2. 实战示例 1)什么是工厂方法模式 2)工厂方法模式的使用场景 3)工厂方法模式的实现方式 4)Go语言实战 5)工厂方法模式的优缺点 01 为什么需要设计模式 设计模式可以根据以前的实践和经验记录要采用的解决方案。 在设计模式的实现过程中,需要使用多个软件组件共同实现某些功能。 因此,设计模式加快了涉及多个组件的开发过程。 开发者可以在对应解决方案的具体应用中使用熟悉的编程语言。 例如,如果某个开发者熟
博文视点Broadview
2023/04/04
2790
OMG!Go语言设计模式,这样用简直不要太爽!
【学习】1月份推荐给程序员们的技术书书单
时光飞逝,不知不觉,微信君已经和小伙伴们走过了2014,感谢你们的支持。小编会在2015年加倍努力,与你们一起分享好书。 2015年,首月,好多技术书的付印计划摆在了小编面前十几本,筛选一再斟酌,最后敲定以下技术书给大家。如果喜欢这一期的技术书,就分享给更多的小伙伴们吧! 特别推荐 1第一本Docker书 Docker公司前服务与支持副总裁力作 全球第一本Docker技术图书 学习Docker必备的第一本书 《第一本Docker书》由Docker 公司前服务与支持副总裁James Turnbul
小莹莹
2018/04/23
8610
【学习】1月份推荐给程序员们的技术书书单
架构模式的圣经
在模式领域里,有一部伟大著作给予软件设计领域带来的影响非常大,那就是以德国人Frank Buschmann为主要贡献者的《面向模式的软件架构》(Pattern-Oriented Software Architecture)系列。 提及模式,开发人员的第一反应一定是GOF的《设计模式》。毫无疑问,这本软件领域的经典著作已经深入人心,差不多可以说是设计模式的圣经了。书中的23种模式已经成为开发者之间进行交流的术语,使用它们甚至像使用语言中的惯用法一般自然。然而,事实上,在模式领域里,还有一部伟大著作给予软件设
张逸
2018/03/07
1.7K0
架构模式的圣经
领域驱动设计模式的收益与挑战
《软件学报》在2021年第32卷第9期刊登了一篇论文:《领域驱动设计模式的收益与挑战:系统综述》[1]。这篇论文是学术界在这一领域开山之作。
码农戏码
2021/11/18
1.4K0
领域驱动设计模式的收益与挑战
JavaScript设计模式与开发实践(图灵原创)
本书是根据JavaScript语言的特性专门针对JavaScript语言全面总结的设计模式。全书共分为三个部分,一部分讲解了JavaScript语言面向对象和函数式编程的知识及其在设计模式方面的作用;二部分通过一步步完善的代码示例,由浅入深地讲解了16个设计模式;三部分讲述了面向对象的设计原则及其在设计模式中的体现,以及一些常见的面向对象编程技巧和日常开发中的代码重构。
用户3157710
2018/10/10
9110
JavaScript设计模式与开发实践(图灵原创)
相关推荐
深度学习架构的设计模式:介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档