熱門關鍵字:

BN說明

Python設計模式

  • 館長推薦
? 快來將您對閱讀的熱情和對書籍的想法分享給所有讀友,每完成一篇讀者書評並審核通過者,即可獲得讀者書評點數,點數還可換電子禮券唷!
分享:
版本:

商品訊息

  • 追蹤分類 ? 追蹤分類後,您會在第一時間收到分類新品通知。
  • 作者: 羅偉富 追蹤作者 ? 追蹤作者後,您會在第一時間收到作者新書通知。
  • 出版社: 深智數位 追蹤出版社 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
  • 出版日:2019/11/18
  • ISBN:9789865501068
  • 適讀年齡:全齡適讀
  • 定價: 650
  • 特價: 79 514
  • 紅利可抵: 15 ? 除單一商品售價低於50元或特價折扣低於3折(含)以下者,其餘商品均可使用紅利點數。
  • 到店取貨: ? 『金石堂』門市取貨免運費。
    『全家、OK、萊爾富、掌櫃』滿350元,免運費;350元以下,運費20元。
    宅配: ? 滿1,000元,免運費
    490元-999元,運費50元
    490元以下,運費65元
  • 配送地區: 全球、 香港OK、 台澎金馬
  • 付款方式: ATM、 信用卡、 LINE Pay、 街口帳戶支付、 貨到付款、 PayPal、 FamiPort、 取貨付款
  • 預計 2019/12/14 出貨 參考庫存量:2 查詢門市庫存 ? 若您欲在金石堂門市購買商品,請選擇欲查看庫存之門市。網頁之「庫存狀態」僅供參考,實際貨況以門市為準。

強力推薦

內容簡介

這是一本通俗易懂、妙趣橫生的設計模式書籍,作者將帶領讀者進入物件導向程式設計的禪道三重境界。

►一重境界:依葫蘆畫瓢。這屬於初學階段,以為設計模式只有書中提到的那幾種,能把模式名稱倒背如流,但真正要用時,還得去翻書,依據類別圖照搬照改。

►二重境界:靈活運用。這屬於中級階段,即對每一種設計模式都非常熟悉,有較深入的思考,而且能夠根據實際的業務場景選擇合適的模式,並對相應的模式進行恰當的修改以符合實際需求。

►三重境界:心中無模式。這算最終階段,這裡說無模式並非不使用設計模式,而是設計模式的理念已經融入使用者的靈魂和血液,已經不在乎具體使用哪種通用模式了,但寫出的每一個程式碼都遵循設計的原則,能靈活地創造和使用新的模式(這種模式使用者自己可能也不知道該叫什麼)。這就是所謂的心中無模式卻處處有模式。

全書分為3篇:

■「基礎篇」 講解23種經典設計模式,其中19種常用設計模式分別用單獨的章節講解,其餘設計模式放在一章中講解。

■「進階篇」 講解由基礎設計模式衍生出的各種程式設計機制,包括篩檢程式模式、物件集區技術、回檔機制和MVC模式,它們在各大程式設計語言中都非常重要而且常見。

■「經驗篇」 結合工作經驗和專案積累,分享對設計模式、設計原則、專案重構的理解和看法。        

適合讀者群:互聯網軟體開發者、有一定程式設計基礎的IT職場新人、對設計模式和程式設計思維感興趣者。   

本書特色

►本書通俗易懂、妙趣橫生
►生活經歷、融入設計模式
►心中無模式卻處處有模式
►邁向程式碼重構與簡潔之道

作者

羅偉富(Spencer.Luo

CSDN 博客專家,知名線上教育公司技術專家。

從事後端基礎技術研究,從底層到應用層,從前端到後端積累豐富的開發經驗,熟悉 C 、Java、Python、PHP 等多種不同開發語言。

熱愛生活、喜歡技術、善於用生活的場景解讀難懂的技術!

目錄

前言

第一篇 基礎篇

第0 章 啟程之前,請不要錯過我
0.1 Python 精簡入門
0.2 UML 精簡概述

第1 章 監聽模式(Observer Pattern)
1.1 從生活中領悟監聽模式
1.2 從劇情中思考監聽模式
1.3 監聽模式的模型抽象
1.4 實戰應用
1.5 應用場景

第2 章 狀態模式(State Pattern)
2.1 從生活中領悟狀態模式
2.2 從劇情中思考狀態模式
2.3 狀態模式的模型抽象
2.4 應用場景

第3 章 仲介模式(Mediator Pattern)
3.1 從生活中領悟仲介模式
3.2 從劇情中思考仲介模式
3.3 仲介模式的模型抽象
3.4 實戰應用
3.5 應用場景

第4 章 裝飾模式(Decorator Pattern)
4.1 從生活中領悟裝飾模式
4.2 從劇情中思考裝飾模式
4.3 裝飾模式的模型抽象
4.4 應用場景

第5 章 單例模式(Singleton Pattern)
5.1 從生活中領悟單例模式
5.2 從劇情中思考單例模式
5.3 單例模式的模型抽象
5.4 應用場景

第6 章 克隆模式(Clone Pattern)
6.1 從生活中領悟克隆模式
6.2 從劇情中思考克隆模式
6.3 克隆模式的模型抽象
6.4 實戰應用
6.5 應用場景

第7 章 職責模式(Chain of Responsibility Pattern)
7.1 從生活中領悟職責模式
7.2 從劇情中思考職責模式
7.3 職責模式的模型抽象
7.4 應用場景

第8 章 代理模式(Proxy pattern)
8.1 從生活中領悟代理模式
8.2 從劇情中思考代理模式
8.3 代理模式的模型抽象
8.4 應用場景

第9 章 面板模式(Facade Pattern)
9.1 從生活中領悟面板模式
9.2 從劇情中思考面板模式
9.3 面板模式的模型抽象
9.4 實戰應用
9.5 應用場景

第10 章 反覆運算模式(Iterator Pattern)
10.1 從生活中領悟反覆運算模式
10.2 從劇情中思考反覆運算模式
10.3 反覆運算模式的模型抽象
10.4 應用場景

第11 章 組合模式(Composite Pattern)
11.1 從生活中領悟組合模式
11.2 從劇情中思考組合模式
11.3 組合模式的模型抽象
11.4 實戰應用
11.5 應用場景

第12 章 構建模式(Builder Pattern)
12.1 從生活中領悟構建模式
12.2 從劇情中思考構建模式
12.3 構建模式的模型抽象
12.4 應用場景

第13 章 適配模式(Wrapper Pattern)
13.1 從生活中領悟適配模式
13.2 從劇情中思考適配模式
13.3 適配模式的模型抽象
13.4 實戰應用
13.5 應用場景

第14 章 策略模式(Strategy Pattern)
14.1 從生活中領悟策略模式
14.2 從劇情中思考策略模式
14.3 策略模式的模型抽象
14.4 實戰應用
14.5 應用場景

第15 章 工廠模式(Factory Pattern)
15.1 從生活中領悟工廠模式
15.2 從劇情中思考工廠模式
15.3 工廠三姐妹
15.4 進一步思考
15.5 實戰應用

第16 章 命令模式(Command Pattern)
16.1 從生活中領悟命令模式
16.2 從劇情中思考命令模式
16.3 命令模式的模型抽象
16.4 實戰應用
16.5 應用場景

第17 章 備忘模式(Memento Pattern)
17.1 從生活中領悟備忘模式
17.2 從劇情中思考備忘模式
17.3 備忘模式的模型抽象
17.4 實戰應用
17.5 應用場景

第18 章 享元模式(Flyweight Pattern)
18.1 從生活中領悟享元模式
18.2 從劇情中思考享元模式
18.3 享元模式的模型抽象
18.4 應用場景

第19 章 訪問模式(Visitor Pattern)
19.1 從生活中領悟訪問模式
19.2 從劇情中思考訪問模式
19.3 訪問模式的模型抽象
19.4 實戰應用
19.5 應用場景

第20 章 其他經典設計模式
20.1 範本模式(Template Method Pattern)
20.2 橋接模式(Bridge Pattern)
20.3 解釋模式(Interpreter Pattern)

第二篇 進階篇

第21 章 深入解讀篩檢程式模式
21.1 從生活中領悟篩檢程式模式
21.2 從劇情中思考篩檢程式模式
21.3 篩檢程式模式的模型抽象
21.4 實戰應用
21.5 應用場景

第22 章 深入解讀物件集區技術
22.1 從生活中領悟物件集區技術
22.2 從劇情中思考物件集區機制
22.3 物件集區機制的模型抽象
22.4 應用場景

第23 章 深入解讀回檔機制
23.1 從生活中領悟回檔機制
23.2 從劇情中思考回檔機制
23.3 回檔機制的模型抽象
23.4 實戰應用
23.5 應用場景

第24 章 深入解讀MVC 模式
24.1 從生活中領悟MVC 模式
24.2 從劇情中思考MVC 模式
24.3 MVC 模式的模型抽象
24.4 應用場景

第三篇 經驗篇

第25 章 關於設計模式的理解
25.1 眾多書籍之下為何還要寫此書
25.2 設計模式玄嗎
25.3 如何區分不同的模式
25.4 程式設計思維的三重境界

第26 章 關於設計原則的思考
26.1 SOLID 原則
26.2 是否一定要遵循這些設計原則
26.3 更為實用的設計原則

第27 章 關於專案重構的思考
27.1 什麼叫重構
27.2 為何要重構
27.3 什麼時機進行重構
27.4 如何重構程式碼
27.5 程式碼整潔之道

附錄A  23 種經典設計模式的索引對照表
附錄B  Python 中_new_、_init_ 和_call_ 的用法
附錄 C Python 中metaclass 的原理

序/導讀

前言

三年前,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 的基本語法
對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 相關的框架庫,也都紛紛採用了Pytho

詳細資料

詳細資料

    • 編/譯者
    • 語言
    • 中文繁體
    • 規格
    • 紙本平裝
    • ISBN
    • 9789865501068
    • 分級
    • 普通級
    • 開數
    • 頁數
    • 424
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀

訂購須知

下載『金石堂APP』並開啟推播設定,隨時掌握出貨動態:

Google play
App Store

    商品運送說明:

  • 本公司所提供的產品配送區域範圍目前僅限台灣本島。注意!收件地址請勿為郵政信箱。
  • 商品將由廠商透過貨運或是郵局寄送。消費者訂購之商品若無法送達,經電話或 E-mail無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
  • 當廠商出貨後,您會收到E-mail及APP出貨通知,您也可透過【訂單查詢】確認出貨情況。
  • 建議您可下載『金石堂APP』並開啟推播設定,即可收到出貨通知。
  • 產品顏色可能會因網頁呈現與拍攝關係產生色差,圖片僅供參考,商品依實際供貨樣式為準。
  • 如果是大型商品(如:傢俱、床墊、家電、運動器材等)及需安裝商品,請依商品頁面說明為主。訂單完成收款確認後,出貨廠商將會和您聯繫確認相關配送等細節。
  • 偏遠地區、樓層費及其它加價費用,皆由廠商於約定配送時一併告知,廠商將保留出貨與否的權利。

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
預計 2019/12/14 出貨 參考庫存量:2 查詢門市庫存?

30