TOP
0
0
【簡體曬書節】 單本79折,5本7折,優惠只到5/31,點擊此處看更多!
人人都懂設計模式:從生活中領悟設計模式(Python實現)(簡體書)
滿額折

人人都懂設計模式:從生活中領悟設計模式(Python實現)(簡體書)

商品資訊

人民幣定價:79 元
定價
:NT$ 474 元
優惠價
87412
缺貨無法訂購
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

設計模式(Design Patterns)是一套被反復使用、多數人知曉、無數工程師實踐的代碼設計經驗的總結,它是面向對象思想的高度提煉和模板化。本書帶你一起從生活的角度思考設計模式,以輕鬆有趣的小故事開始,由淺入深地講解每一種模式,思考每一種模式,總結每一種模式!力求用更通俗的語言闡述難懂的概念,用更簡單的語法實現複雜的邏輯,用更短小的代碼寫出強悍的程序!使枯燥乏味的概念變得更有樂趣和意義,希望能帶給讀者一種全新的閱讀體驗和思考方式。本書分為3篇:“基礎篇”講解了23種經典設計模式,其中19種常用設計模式分別用單獨的章節講解,其餘模式作為一個合集放在一章中講解;“進階篇”講解了由基礎設計模式衍生出的各種編程機制,包括過濾器模式、對象池技術、回調機制和MVC模式,它們在各大編程語言中都非常重要而且常見;“經驗篇”結合工作經驗和項目積累,分享了對設計模式、設計原則、項目重構的理解和看法。Python作為AI時代最重要的一種計算機語言,在各大語言中的排名逐年上升!本書所有示例代碼均用Python編寫,將會是國內不可多得的一本用Python來講解設計模式的書。本書適合的讀者:一線互聯網軟件開發者、有一定編程基礎的IT職場新人、對設計模式和編程思想感興趣的人士。

名人/編輯推薦

人工智能Python時代的大話設計模式!

獨闢蹊徑,從生活中的例子出發逐漸上升概念定義
歸納每種模式的具體應用場景、特點、注意事項等
給出每種模式在現實中的應用案例,非常貼近實戰
歸納這個設計模式的具體應用場景、特點、注意事項
不僅有經典設計模式,還有各種相關編程機制和經驗

設計模式涉及非常多的軟件架構知識和設計思想
設計模式利於系統便攜性、健壯性、維護性、拓展性

程序員夯實基礎擴展思路謀求設計出更好的軟件必備!!

前言

三年前,CSDN推出了一個產品――ink,旨在提供一個高質量寫作環境。那時,我想寫一系列關於設計模式的文章,於是就在ink裡開始寫作,陸陸續續寫了三篇文章,後來不知道什麼原因這個產品下架了,我的三篇文章也沒了,這事也就一直被我擱置下來。直到2017年,知識付費盛行,各類付費的社區、產品如雨後春筍般崛起,而技術類的付費閱讀產品更是大行其道(GitChat便是其中一種)。在GitChat的盛情邀請之下,我寫作設計模式這一系列文章的想法又重新被點燃。2017年年底,我開始在GitChat上寫“從生活中領悟設計模式(Python)”課程。2018年,我對這一課程進行了一次升級。
隨著這一課程被越來越多的讀者熟知,不少出版社編輯找到我,他們覺得這一課程的內容非常有特色,希望能把它重新整理,仔細打磨,出版成書,於是便有了本書。
本書的特色
設計模式作為面向對象程序的設計思想和方法論,本身是非常抽象和難以理解的,需要有一定的代碼量和編程經驗才能更深入地理解。如果能用一種有趣的方式來講解設計模式,將會使這些枯燥乏味的概念變得更易於理解!
本書每一章以一個輕鬆有趣的小故事開始,然後用代碼來模擬故事劇情,再從模擬代碼中逐步提煉出設計模式的模型和原理,最後配合一個具體的應用案例,告訴你每一種模式的使用方法和應用場景。以由淺入深的方式帶你瞭解每一種模式,思考每一種模式,總結每一種模式。
本書力求用更通俗的語言闡述難懂的概念,用更簡單的語法實現複雜的邏輯,用更短小的代碼寫出強悍的程序!希望能帶給讀者一種全新的閱讀體驗和思考方式。
內容概述
本書分為3篇:

? “基礎篇”講解了23種經典設計模式,其中19 種常用設計模式分別用單獨的章節講解,其餘設計模式作為一個合集放在一章中講解;
? “進階篇”講解了由基礎設計模式衍生出的各種編程機制,包括過濾器模式、對象池技術、回調機制和MVC模式,它們在各大編程語言中都非常重要而且常見;
? “經驗篇”結合工作經驗和項目積累,分享了對設計模式、設計原則、項目重構的理解和看法。
讀者對象
一線互聯網軟件開發者
如果你想提升面向對象的思維方式,提高自己的軟件設計能力,本書會對你非常有幫助。本書每一章會抽象和總結出對應設計模式的模型和原理,並結合具體的應用案例告訴你該模式的應用場景、特點和注意事項。
IT職場新人
如果你是IT新人,想通過學習設計模式來提升自己的技術能力和代碼理解能力,本書將非常適合你。本書每一章以一個輕鬆有趣的小故事開始,由淺入深地講述一個模式,讓你輕鬆愉悅地學會每一種模式。
對設計模式和編程思想感興趣的人士
設計模式能讓你的代碼具有更高的可重用性、更好的靈活性和可拓展性,更易被人閱讀和理解,因此學習設計模式是每一個程序員編程生涯中必不可少的一個環節。
為什麼叫設計模式
什麼是設計模式
設計模式最初是由GoF於1995年提出的。GoF全稱是Gang of Four(四人幫),即Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides。他們四人於1995年出版了一本書Design Patterns: Elements of Reusable Object-Oriented Software(翻譯成中文是《設計模式:可複用面向對象軟件的基礎》),第一次將設計模式提升到理論高度,並將之規範化,該書提出了23種經典的設計模式。
設計模式是一套被反復使用、多數人知曉、無數工程師實踐的代碼設計經驗的總結,它是面向對象思想的高度提煉和模板化。使用設計模式是為了讓代碼具有更高的可重用性、更好的靈活性和可拓展性,更易被人閱讀和理解。
設計模式與生活有什麼聯繫
我一直堅信:程序源于生活,又高於生活!程序的靈魂在於思維的方式,而思維的靈感來源於精彩的生活。互聯網是一個虛擬的世界,而程序本身就是對生活場景的虛擬和抽象,每一種模式我都能在生活中找到它的影子。比如,說到狀態模式,我能想到水有固、液、氣三種狀態,而人也有少、壯、老三個階段;提起中介模式,我能立刻想到房產中介;看到裝飾模式,我能聯想到人的穿衣搭配……
設計模式是面向對象的高度抽象和總結,而越抽象的東西越難以理解。本書的寫作目的就是降低設計模式的閱讀門檻,以生活中的小故事開始,用風趣的方式,由淺入深地講述每一種模式。讓你再次看到設計模式時,不覺得它只是一種模式,還是生活中的一個“小確幸”!程序不是冷冰冰的代碼,它還有生活的樂趣和特殊意義。
為什麼要學設計模式
設計模式是軟件開發人員在軟件開發過程中面臨的一般問題的解決方案。這些解決方案是眾多軟件開發人員經過相當長的一段時間的試驗總結出來的。所以不管你是新手還是老手,學習設計模式對你都有莫大的幫助。
學習設計模式的理由有很多,這裡只列出幾個最現實的:
(1)擺脫面試的窘境,不管你是前端工程師還是後端工程師,或是全端工程師,設計模式都是不少面試官必問的。
(2)讓你的程序設計能力有一個質的提升,不再寫一堆結構複雜、難以維護的爛代碼。
(3)使你對面向對象的思想有一個更高層次的理解。
如何進行學習
熟悉一門面向對象語言
首先,你至少要熟悉一門面向對象的計算機語言。如果沒有,請根據自己的興趣、愛好或希望從事的工作,先選擇一門面向對象語言(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代碼的設計模式。
大勢所趨,Python已然成風
C語言誕生於1972年,卻隨著UNIX的誕生才深深根植於各大操作系統;C++誕生於1983年,卻因微軟的可視化桌面操作系統才得以廣泛傳播;Java誕生於1995年,卻因互聯網的迅速崛起才變得家喻戶曉;Python誕生於1991年,而下一場技術革命已然開始,AI時代已然到來,在AI領域中已經被廣泛使用的Python必將成為下一個時代的第一開發語言!
最熱門的AI開源框架PyTorch和TensorFlow都已經採用了Python作為接口和開發語言。除此之外,還有一堆AI相關的框架庫,也都紛紛採用了Python,如SKlearn、PyML等。一門如此有前途的語言,我們必然是要去學習和使用的。
勘誤和支持
由於本人水平和經驗有限,書中難免會有一些錯誤或理解不準確的地方,懇請廣大讀者批評指正。
如果你在閱讀過程中發現錯誤,或有更好的建議,歡迎發郵件給我(E-mail:luoweifu@ 126.com,永久有效)。
最新的勘誤內容可通過以下方式查看:關注公眾號“SunLogging”,在菜單欄中選擇“我的書箱”→“最新勘誤”。
致謝
從在GitChat上寫課程,到與出版社合作,寫完本書的書稿,大概經歷了一年半的時間,經過無數次與編輯的反復校對。寫作是一件非常考驗人耐心和細心的事,為了讓讀者更易理解,有些章節我進行了反復的推敲和修改。比如,為了講清楚單例模式的每一種實現方式的原理,硬是增加了兩個附錄,閱讀了十幾篇文章,並做了驗證性的實驗,整整花了三周時間才寫完。
感謝每一位在本書寫作過程中給予幫助的人,是你們的鼓勵和支持,才讓本書能順利完成。在此,要特別感謝電子出版社的首席策劃編輯董英,在寫書過中給予的諸多建議;也感謝GitChat的編輯馬翠翠,在寫線上課程“從生活中領悟設計模式(Python)”時給予的很多幫助;還要感謝Sophia“小朋友”,在封面設計過程中提出的非常細緻的改進意見!最後,我也要感謝我的朋友和同事對我寫書的鼓勵和支持。
還要感謝Sophia“小朋友”,在封面設計過程中提出的非常細緻的改進意見!

目次

目錄


基 礎 篇
第0章 啟程之前,請不要錯過我 2
0.1 Python精簡入門 2
0.1.1 Python的特點 2
0.1.2 基本語法 3
0.1.3 一個例子讓你頓悟 7
0.1.4 重要說明 11
0.2 UML精簡概述 11
0.2.1 UML的定義 11
0.2.2 常見的關係 12
第1章 監聽模式 16
1.1 從生活中領悟監聽模式 16
1.1.1 故事劇情―幻想中的智能熱水器 16
1.1.2 用程序來模擬生活 17
1.2 從劇情中思考監聽模式 19
1.2.1 什麼是監聽模式 19
1.2.2 監聽模式設計思想 19
1.3 監聽模式的模型抽象 19
1.3.1 代碼框架 19
1.3.2 類圖 20
1.3.3 基於框架的實現 21
1.3.4 模型說明 22
1.4 實戰應用 23
1.5 應用場景 26
第2章 狀態模式 28
2.1 從生活中領悟狀態模式 28
2.1.1 故事劇情―人有少、壯、老,水之固、液、氣 28
2.1.2 用程序來模擬生活 29
2.2 從劇情中思考狀態模式 32
2.2.1 什麼是狀態模式 32
2.2.2 狀態模式設計思想 33
2.3 狀態模式的模型抽象 33
2.3.1 代碼框架 33
2.3.2 類圖 35
2.3.3 基於框架的實現 36
2.3.4 模型說明 38
2.4 應用場景 39
第3章 中介模式 40
3.1 從生活中領悟中介模式 40
3.1.1 故事劇情―找房子問中介 40
3.1.2 用程序來模擬生活 41
3.2 從劇情中思考中介模式 46
3.2.1 什麼是中介模式 46
3.2.2 中介模式設計思想 46
3.3 中介模式的模型抽象 48
3.3.1 代碼框架 48
3.3.2 類圖 49
3.3.3 模型說明 50
3.4 實戰應用 51
3.5 應用場景 56
第4章 裝飾模式 57
4.1 從生活中領悟裝飾模式 57
4.1.1 故事劇情―你想怎麼搭就怎麼搭 57
4.1.2 用程序來模擬生活 58
4.2 從劇情中思考裝飾模式 62
4.2.1 什麼是裝飾模式 62
4.2.2 裝飾模式設計思想 63
4.3 裝飾模式的模型抽象 64
4.3.1 類圖 64
4.3.2 Python中的裝飾器 64
4.3.3 模型說明 69
4.4 應用場景 70
第5章 單例模式 71
5.1 從生活中領悟單例模式 71
5.1.1 故事劇情―你是我的唯一 71
5.1.2 用程序來模擬生活 72
5.2 從劇情中思考單例模式 73
5.2.1 什麼是單例模式 73
5.2.2 單例模式設計思想 73
5.3 單例模式的模型抽象 73
5.3.1 代碼框架 73
5.3.2 類圖 78
5.3.3 基於框架的實現 78
5.4 應用場景 79
第6章 克隆模式 80
6.1 從生活中領悟克隆模式 80
6.1.1 故事劇情―給你一個分身術 80
6.1.2 用程序來模擬生活 80
6.2 從劇情中思考克隆模式 82
6.2.1 什麼是克隆模式 82
6.2.2 淺拷貝與深拷貝 82
6.3 克隆模式的模型抽象 86
6.3.1 代碼框架 86
6.3.2 類圖 86
6.3.3 基於框架的實現 87
6.3.4 模型說明 87
6.4 實戰應用 88
6.5 應用場景 90
第7章 職責模式 91
7.1 從生活中領悟職責模式 91
7.1.1 故事劇情―我的假條去哪兒了 91
7.1.2 用程序來模擬生活 92
7.2 從劇情中思考職責模式 96
7.2.1 什麼是職責模式 96
7.2.2 職責模式設計思想 96
7.3 職責模式的模型抽象 97
7.3.1 代碼框架 97
7.3.2 類圖 98
7.3.3 基於框架的實現 99
7.3.4 模型說明 102
7.4 應用場景 103
第8章 代理模式 104
8.1 從生活中領悟代理模式 104
8.1.1 故事劇情―幫我拿一下快遞 104
8.1.2 用程序來模擬生活 105
8.2 從劇情中思考代理模式 107
8.2.1 什麼是代理模式 107
8.2.2 代理模式設計思想 107
8.3 代理模式的模型抽象 107
8.3.1 代碼框架 107
8.3.2 類圖 109
8.3.3 基於框架的實現 110
8.3.4 模型說明 111
8.4 應用場景 111
第9章 外觀模式 113
9.1 從生活中領悟外觀模式 113
9.1.1 故事劇情―學妹別慌,學長幫你 113
9.1.2 用程序來模擬生活 114
9.2 從劇情中思考外觀模式 116
9.2.1 什麼是外觀模式 116
9.2.2 外觀模式設計思想 116
9.3 外觀模式的模型抽象 117
9.3.1 類圖 117
9.3.2 軟件的分層結構 117
9.3.3 模型說明 119
9.4 實戰應用 119
9.5 應用場景 123
第10章 迭代模式 124
10.1 從生活中領悟迭代模式 124
10.1.1 故事劇情―下一個就是你了 124
10.1.2 用程序來模擬生活 125
10.2 從劇情中思考迭代模式 128
10.2.1 什麼是迭代模式 128
10.2.2 迭代模式設計思想 129
10.3 迭代模式的模型抽象 130
10.3.1 代碼框架 130
10.3.2 Python中的迭代器 132
10.3.3 類圖 136
10.3.4 模型說明 137
10.4 應用場景 138
第11章 組合模式 139
11.1 從生活中領悟組合模式 139
11.1.1 故事劇情―自己組裝電腦,價格再降三成 139
11.1.2 用程序來模擬生活 140
11.2 從劇情中思考組合模式 146
11.2.1 什麼是組合模式 146
11.2.2 組合模式設計思想 147
11.3 組合模式的模型抽象 148
11.3.1 代碼框架 148
11.3.2 類圖 149
11.3.3 模型說明 150
11.4 實戰應用 150
11.5 應用場景 153
第12章 構建模式 154
12.1 從生活中領悟構建模式 154
12.1.1 故事劇情―你想要一輛車還是一個莊園 154
12.1.2 用程序來模擬生活 155
12.2 從劇情中思考構建模式 157
12.2.1 什麼是構建模式 157
12.2.2 構建模式設計思想 157
12.2.3 與工廠模式的區別 158
12.2.4 與組合模式的區別 158
12.3 構建模式的模型抽象 159
12.3.1 類圖 159
12.3.2 基於框架的實現 160
12.3.3 模型說明 163
12.4 應用場景 164
第13章 適配模式 166
13.1 從生活中領悟適配模式 166
13.1.1 故事劇情――有個轉換器就好了 166
13.1.2 用程序來模擬生活 167
13.2 從劇情中思考適配模式 170
13.2.1 什麼是適配模式 170
13.2.2 適配模式設計思想 170
13.3 適配模式的模型抽象 172
13.3.1 代碼框架 172
13.3.2 類圖 172
13.3.3 模型說明 173
13.4 實戰應用 174
13.5 應用場景 184
第14章 策略模式 185
14.1 從生活中領悟策略模式 185
14.1.1 故事劇情―怎麼來不重要,人到就行 185
14.1.2 用程序來模擬生活 186
14.2 從劇情中思考策略模式 188
14.2.1 什麼是策略模式 188
14.2.2 策略模式設計思想 188
14.3 策略模式的模型抽象 189
14.3.1 類圖 189
14.3.2 模型說明 190
14.4 實戰應用 190
14.5 應用場景 195
第15章 工廠模式 196
15.1 從生活中領悟工廠模式 196
15.1.1 故事劇情―你要拿鐵還是摩卡呢 196
15.1.2 用程序來模擬生活 197
15.2 從劇情中思考工廠模式 199
15.2.1 什麼是簡單工廠模式 199
15.2.2 工廠模式設計思想 199
15.3 工廠三姐妹 199
15.3.1 簡單工廠模式 200
15.3.2 工廠方法模式 201
15.3.3 抽象工廠模式 203
15.4 進一步思考 205
15.5 實戰應用 205
第16章 命令模式 209
16.1 從生活中領悟命令模式 209
16.1.1 故事劇情―大閘蟹,走起 209
16.1.2 用程序來模擬生活 210
16.2 從劇情中思考命令模式 213
16.2.1 什麼是命令模式 213
16.2.2 命令模式設計思想 213
16.3 命令模式的模型抽象 214
16.3.1 代碼框架 214
16.3.2 類圖 215
16.3.3 模型說明 216
16.4 實戰應用 216
16.5 應用場景 224
第17章 備忘模式 225
17.1 從生活中領悟備忘模式 225
17.1.1 故事劇情―好記性不如爛筆頭 225
17.1.2 用程序來模擬生活 226
17.2 從劇情中思考備忘模式 228
17.2.1 什麼是備忘模式 228
17.2.2 備忘模式設計思想 229
17.3 備忘模式的模型抽象 229
17.3.1 類圖 229
17.3.2 代碼框架 230
17.3.3 模型說明 232
17.4 實戰應用 232
17.5 應用場景 235
第18章 享元模式 236
18.1 從生活中領悟享元模式 236
18.1.1 故事劇情―顏料很貴,必須充分利用 236
18.1.2 用程序來模擬生活 237
18.2 從劇情中思考享元模式 239
18.2.1 什麼是享元模式 239
18.2.2 享元模式設計思想 239

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 412
缺貨無法訂購

暢銷榜

客服中心

收藏

會員專區