新書推薦:
《
棉的全球史(历史·文化经典译丛)
》
售價:HK$
109.8
《
超越百岁看这本就够了
》
售價:HK$
55.8
《
亚洲戏剧史·南亚卷
》
售價:HK$
143.4
《
中国历代竹器图谱与数字活化
》
售價:HK$
557.8
《
EDA技术与设计(第2版)
》
售價:HK$
85.0
《
揉碎浪漫(全两册)
》
售價:HK$
70.3
《
古籍善本
》
售價:HK$
537.6
《
人民币国际化报告2024:可持续全球供应链体系与国际货币金融变革
》
售價:HK$
87.4
|
編輯推薦: |
本书的可视化演示使模式更易于使用,同时使读者可以利用Python丰富的函数构建复杂程序。
|
內容簡介: |
本书提供了23种经过验证的的、可视化、示例驱动的模式,涉及抽象类、多重继承、GUI编程和小部件、图形类、绘图和绘图、数学、数据库、Python装饰器、图像、线程、迭代器、创建可执行代码等,从而编写更加健壮、高效、可维护和优雅的Python代码,生成功能强大、灵活的程序。
|
目錄:
|
目 录
第一部分设计模式基础1
tkinter库2
GitHub2
第1章?对象简介5
类__init__方法6
类内部的变量6
类的集合7
继承8
用修正方法创建继承类8
多重继承8
绘制矩形和正方形10
变量的可见性12
属性13
局部变量13
Python中的变量类型13
总结14
GitHub中的程序15
第2章?Python可视化编程17
导入少量名字19
面向对象的程序19
使用消息框21
使用文件对话框22
理解pack布局管理器选项23
使用ttk库24
响应用户输入25
两个数字相加26
捕获错误26
运用tkinter中的颜色27
创建单选按钮27
使用类级别的变量30
类之间的通信30
使用Grid布局30
创建复选按钮32
禁用Check框34
在窗口中添加菜单项35
使用Label Frame控件39
继续移动40
GitHub中的程序40
第3章?数据表格的可视化编程41
创建列表框42
显示状态数据44
使用组合框46
树视图组件47
插入树节点50
继续移动51
GitHub中的程序51
第4章?设计模式53
定义设计模式54
学习步骤55
面向对象方法的说明56
Python设计模式57
参考资料57
第二部分?创建型模式59
第5章?工厂模式61
工厂模式简介61
案例代码62
两个子类62
创建简单的工厂模式63
使用工厂63
一个简单的图形用户界面64
数学运算中的工厂模式65
GitHub中的程序65
问题思考66
第6章?工厂方法模式67
Swimmer类68
Event类69
StraightSeeding类70
CircleSeeding类71
创建Seeding程序72
其他工厂74
使用工厂方法模式的场景74
GitHub中的程序74
第7章?抽象工厂模式75
GardenMaker工厂75
花园规划界面77
抽象工厂模式总结77
问题思考78
GitHub中的程序78
第8章?单例模式79
抛出异常80
创建一个类示例80
单例模式的静态类81
在大型程序中查找单例81
单例模式总结82
GitHub中的程序82
第9章?生成器模式83
投资跟踪器84
调用生成器86
列表框生成器87
复选框生成器88
显示选定证劵89
生成器模式总结89
问题思考89
GitHub中的程序89
第10章?原型模式91
Python中的克隆91
使用原型92
原型模式总结94
GitHub中的程序94
第11章?创建型模式总结95
第三部分?结构型模式97
第12章?适配器模式99
列表之间的数据移动99
创建一个适配器101
类适配器103
双向适配器103
可插式适配器103
GitHub中的程序103
第13章?桥接模式105
创建用户界面107
扩展桥107
桥接模式总结109
GitHub中的程序110
第14章?组合模式111
组合结构的实现112
工资的计算112
Employee类112
Boss类113
创建员工树114
打印员工树114
创建树视图116
使用双向链表117
组合模式总结118
一个简单的组合119
组合模式的实现119
处理递归调用119
排序组件120
缓存结果120
GitHub中的程序120
第15章?装饰器模式121
装饰按钮121
使用装饰器122
使用非可视化装饰器123
装饰代码124
数据类装饰器125
数据类处理默认值126
装饰器、适配器和组合实体126
装饰器模式总结126
GitHub中的程序127
第16章?外观模式129
创建外观类131
创建数据库和表格135
使用SQLite136
外观模式总结137
GitHub中的程序137
关于MySQL的注释137
使用SQLite138
参考资料138
第17章?享元模式139
享元139
程序示例140
选择文件夹142
写入时复制对象143
GitHub中的程序143
第18章?代理模式145
使用Python图像库(PIL)145
使用PIL显示图像146
使用多线程加载图像146
多线程日志149
写入时复制149
对比相关模式149
GitHub中的程序150
第19章?结构型模式总结151
第四部分?行为型模式153
第20章?责任链模式155
责任链模式的使用场景156
程序示例156
列表框159
编写帮助系统160
接收帮助命令161
第一个案例162
链或树163
请求的种类164
责任链模式总结164
GitHub中的程序165
第21章?命令模式167
命令模式的使用场景167
命令对象168
键盘示例168
调用命令对象170
创建命令对象171
命令模式介绍172
命令模式总结172
撤销操
|
內容試閱:
|
前 言
在我刚开始学习Python时,Python超级简单的编程代码和简单易学的基本程序给我留下了深刻的印象。Python的语法非常简单,不需要记忆括号或分号。不同于那些需要使用Tab键来创建4个首行缩进的空格的编程语言,Python语言编程简单易学。
使用Python几周后,我认识到Python是如此令人难以置信,它可实现非常强大的功能。Python是一门完全面向对象的语言,用户可利用它轻松创建类并设定数据的使用范围,不必为复杂的语法而烦恼。
事实上,当我用Python重新编写几年前用Java编写的程序时,我为Python的简单易用感到惊叹。同时,Python强大的集成开发环境(IDE),大大减少了程序编写的错误。
当我用Python很快就能完成任务时,我意识到是时候写一本关于Python的书了。我用Python重新编写了全新、干净、可读的23个经典设计模式。
由此就诞生了本书。它展示了面向对象编程的基础知识、可视化编程,以及如何使用经典设计模式。读者可以在https://github.com/jwcnmr/jameswcooper/tree/main/Pythonpatterns上找到相关程序的代码。
本书旨在帮助Python程序爱好者拓宽面向对象编程(OOP)和设计模式的相关知识。
如果读者是一位Python编程的新手,可以直接学习第31章至第35章的Python基础知识,再返回从第1章开始学习。
如果读者是一位有经验的Python编程人员,可以从第1章开始学习面向对象编程和设计模式的相关知识,按个人喜好,也可以跳过第2章和第3章,直接学习后面的内容。
Python是所有编程语言中容易学习的一门语言,通过设计模式的运用,创建各种对象也十分容易。随后,读者将了解到对象可以做什么以及在工作中如何使用对象。
在任何情况下,面向对象编程的方法都有助于读者编写更好的、更容易被重复利用的程序代码。
本书结构
本书由以下五个部分构成。
第一部分?设计模式基础
实质上,设计模式描述的是对象间的有效互动。本书第1章介绍对象的相关内容,并提供图形化实例来演示模式是如何工作的。
第2章和第3章介绍Python可视化编程工具——tkinter库,以创建窗口、按钮、列表、表格等对象。
第4章介绍设计模式的定义及其相关内容。
第二部分?创建型模式
第5章介绍基本的工厂模式,它是第6章的基础。
第6章介绍工厂方法模式。在此模式中,父类将创建实例对象的决定交给每个子类。
第7章介绍抽象工厂模式。抽象工厂模式是一个工厂对象,它返回几个组类之一。
第8章介绍单例模式,它描述一个类中不能有多个实例。单例模式提供了实例的单个全局访问点。该模式并不常用,但了解该模式的使用非常有帮助。
第9章介绍生成器模式,该模式将复杂对象的构造与其可视化表示分开,以便根据程序的需要创建几种不同的表示形式。
第10章介绍原型模式,展示通过原型模式创建一个类实例是多么耗时且复杂。对于复杂对象,通常需要复制原始实例对象并酌情做出修改,而不是创建多个实例。
第11章总结第二部分的模式。
第三部分?结构型模式
第12章介绍适配器模式,该模式用于将一个类的编程接口转换到另一个类的编程接口。适配器在不相关的多个类在同一个程序中协同工作时非常有用。
第13章介绍桥接模式,该模式能够在不更改客户端代码的情况下改变或更换类的实现代码。
第14章介绍组合模式,该模式适应组件是单个对象或代表对象的集合。这两种情况通常采用树状结构。
第15章介绍装饰器模式,该模式提供了一种用户可修改单个对象的行为而不必创建新的派生类的方法。该模式虽然可以应用于按钮等可视化对象,但在Python中常见的用途是创建一种修改单个类实例行为的宏。
第16章介绍外观模式,我们学习使用外观模式来编写一个简化的代码接口。
第17章介绍享元模式,该模式用于同一个类有多个实例的情况,通过将一些数据移到类外,可减少对象的数量。
第18章介绍代理模式,该模式可用更简单的对象来表示复杂对象或用于创建耗时的对象。如果创建一个对象需要花费大量时间或占用大量计算机资源,那么可以通过代理在需要实际对象时再创建。
第19章总结第三部分的模式。
第四部分?行为型模式
第20章介绍责任链模式,该模式展示请求如何从链中的一个对象传递到下一个对象,直到请求被识别,实现对象之间的解耦。
第21章介绍命令模式,该模式展示命令模式如何使用简单的对象执行软件命令。此外,该模式支持日志的记录和可撤销操作。
第22章介绍解释器模式,该模式展示如何创建一种小的执行语言,并将其包含在应用程序中的定义。
第23章介绍迭代器模式,该模式描述遍历对象集合中的元素的方法。
第24章介绍中介者模式,该模式通过使用独立的对象来简化对象之间的通信,使所有对象之间不必相互了解。
第25章介绍备忘录模式,该模式保存对象的内部状态,以便用户以后可以恢复对象信息。
第26章介绍观察者模式,该模式允许用户在程序状态发生变化时,将更改通知给多个对象。
第27章介绍状态模式,该模式允许对象在内部状态发生变化时修改其行为。
第28章介绍策略模式,该模式与状态模式类似,不需要任何整体的条件语句即可在算法之间轻松切换。策略模式与状态模式之间的区别在于,在策略模式下,用户通常从几种策略中选择应用哪一种。
第29章介绍模板方法模式。该模式在类中形式化定义算法的构思,并在子类中实现具体的细节。
第30章介绍访问者模式。该模式反转了面向对象的模型,并创建一个外部类用于与其他类中的数据进行交互。
第五部分?Python基础知识
第31章回顾基本的Python变量和语法。
第32章以实例的方式展示应用程序如何做决策。
第33章简要总结几种常见的Python开发环境。
第34章讨论集合和文件。
第35章讨论如何在Python中使用函数。
|
|