Python是一種面向?qū)ο蟮哪_本語言,設計模式是可復用的編程解決方案,二者在各種現(xiàn)實場景中應用都十分廣泛。本書是針對Python代碼實現(xiàn)設計模式的經(jīng)典作品,著重討論了用于解決日常問題的所有GoF設計模式,它們能幫助你構(gòu)建有彈性、可伸縮、穩(wěn)健的應用程序,并將你的編程技能提升至新的高度。第2版探討了橋接模式、備忘模式以及與微服務相關的幾種模式。
本書用現(xiàn)實生活中的例子帶你了解各種常用的設計模式,介紹了諸多有關編寫Python風格代碼的底層細節(jié)和概念,包括修改代碼、最佳實踐、系統(tǒng)架構(gòu)和設計原則等,幫你解決每天都會遇到的問題。書中著重討論了“四人組”(Gang of Four)的設計模式,它們能通過有效的響應式模式,幫你構(gòu)建有彈性、可伸縮、穩(wěn)健的應用程序,并將你的編程技能提升至新的高度。
你將學到:
●探索用于創(chuàng)建對象的工廠方法與抽象工廠
●使用原型模式克隆對象
●使用適配器模式使不兼容的接口兼容
●使用代理模式保護接口的安全
●使用策略模式動態(tài)選擇算法
●使用MVC模式將邏輯與UI解耦
●通過觀察者模式理解響應式編程
●探索云原生、微服務和無服務器架構(gòu)下的設計模式
卡蒙·阿耶娃(Kamon Ayeva),擁有12年專業(yè)開發(fā)經(jīng)驗,熟練使用多種工具進行開發(fā)的Web開發(fā)者與DevOps工程師,大部分時間都在使用Python強大的腳本功能、附加庫和Web框架(如Django和Flask)來構(gòu)建項目。Python布道者,熱衷于教授人們使用Python特性快速生成結(jié)果。
薩基斯·卡薩姆帕利斯(Sakis Kasampalis),軟件工程師,對于多種編程語言和工具都有豐富的經(jīng)驗,秉承的原則是在正確的工作上運用正確的工具。最喜歡的工具之一是Python,因為他欣賞Python的高效。
【譯者介紹】
葛言,本科畢業(yè)于華中科技大學經(jīng)濟學院國際商務專業(yè)(英語雙學位),之后保送上海財經(jīng)大學交叉科學研究院管理科學與工程直博,目前從事運籌學研究與Python開發(fā)。
第 1 章 工廠模式 1
1.1 工廠方法 2
1.1.1 現(xiàn)實生活中的例子 2
1.1.2 用例 2
1.1.3 工廠方法的實現(xiàn) 3
1.2 抽象工廠 9
1.2.1 現(xiàn)實生活中的例子 9
1.2.2 用例 9
1.2.3 抽象工廠模式的實現(xiàn) 10
1.3 小結(jié) 13
第 2 章 建造者模式 15
2.1 現(xiàn)實生活中的例子 16
2.2 用例 16
2.3 實現(xiàn) 19
2.4 小結(jié) 24
第 3 章 其他創(chuàng)建型模式 25
3.1 原型模式 25
3.1.1 現(xiàn)實生活中的例子 26
3.1.2 用例 26
3.1.3 實現(xiàn) 26
3.2 單例模式 29
3.2.1 現(xiàn)實生活中的例子 30
3.2.2 用例 30
3.2.3 實現(xiàn) 30
3.3 小結(jié) 33
第 4 章 適配器模式 35
4.1 現(xiàn)實生活中的例子 35
4.2 用例 36
4.3 實現(xiàn) 36
4.4 小結(jié) 38
第 5 章 裝飾器模式 39
5.1 現(xiàn)實生活中的例子 39
5.2 用例 40
5.3 實現(xiàn) 40
5.4 小結(jié) 44
第 6 章 橋接模式 45
6.1 現(xiàn)實生活中的例子 45
6.2 用例 45
6.3 實現(xiàn) 46
6.4 小結(jié) 48
第 7 章 外觀模式 49
7.1 現(xiàn)實生活中的例子 49
7.2 用例 50
7.3 實現(xiàn) 50
7.4 小結(jié) 54
第 8 章 其他結(jié)構(gòu)型模式 55
8.1 享元模式 55
8.1.1 現(xiàn)實生活中的例子 56
8.1.2 用例 56
8.1.3 實現(xiàn) 57
8.2 MVC模式 61
8.2.1 現(xiàn)實生活中的例子 61
8.2.2 用例 62
8.2.3 實現(xiàn) 63
8.3 代理模式 66
8.3.1 現(xiàn)實生活中的例子 68
8.3.2 用例 68
8.3.3 實現(xiàn) 69
8.4 小結(jié) 72
第 9 章 職責鏈模式 73
9.1 現(xiàn)實生活中的例子 74
9.2 用例 75
9.3 實現(xiàn) 76
9.4 小結(jié) 80
第 10 章 命令模式 81
10.1 現(xiàn)實生活中的例子 81
10.2 用例 82
10.3 實現(xiàn) 82
10.4 小結(jié) 89
第 11 章 觀察者模式 91
11.1 現(xiàn)實生活中的例子 91
11.2 用例 92
11.3 實現(xiàn) 92
11.4 小結(jié) 97
第 12 章 狀態(tài)模式 99
12.1 現(xiàn)實生活中的例子 100
12.2 用例 100
12.3 實現(xiàn) 101
12.4 小結(jié) 106
第 13 章 其他行為型模式 109
13.1 解釋器模式 110
13.1.1 現(xiàn)實生活中的例子 110
13.1.2 用例 110
13.1.3 實現(xiàn) 111
13.2 策略模式 116
13.2.1 現(xiàn)實生活中的例子 117
13.2.2 用例 117
13.2.3 實現(xiàn) 118
13.3 備忘錄模式 121
13.3.1 現(xiàn)實生活中的例子 122
13.3.2 用例 122
13.3.3 實現(xiàn) 122
13.4 迭代器模式 125
13.4.1 現(xiàn)實生活中的例子 125
13.4.2 用例 126
13.4.3 實現(xiàn) 126
13.5 模板模式 129
13.5.1 現(xiàn)實生活中的例子 129
13.5.2 用例 129
13.5.3 實現(xiàn) 130
13.6 小結(jié) 132
第 14 章 響應式編程中的觀察者模式 135
14.1 現(xiàn)實生活中的例子 136
14.1.1 用例 136
14.1.2 實現(xiàn) 136
14.2 小結(jié) 146
第 15 章 微服務與面向云的模式 147
15.1 微服務模式 147
15.1.1 現(xiàn)實生活中的例子 148
15.1.2 用例 148
15.1.3 實現(xiàn) 149
15.2 重試模式 153
15.2.1 現(xiàn)實生活中的例子 154
15.2.2 用例 154
15.2.3 實現(xiàn) 154
15.3 斷路器模式 159
15.3.1 現(xiàn)實生活中的例子 159
15.3.2 用例 159
15.3.3 實現(xiàn) 160
15.4 旁路緩存模式 162
15.4.1 現(xiàn)實生活中的例子 162
15.4.2 用例 162
15.4.3 實現(xiàn) 162
15.5 節(jié)流模式 168
15.5.1 現(xiàn)實生活中的例子 168
15.5.2 用例 168
15.5.3 實現(xiàn) 169
15.6 小結(jié) 171