設計模式的藝術
劉偉
- 出版商: 清華大學
- 出版日期: 2020-06-01
- 定價: $479
- 售價: $478
- 語言: 簡體中文
- 頁數: 389
- ISBN: 7302541884
- ISBN-13: 9787302541882
-
相關分類:
Design Pattern
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
-
$330SystemVerilog 驗證 -
The Linux Programming Interface 國際中文版 (上冊)$800$632 -
The Linux Programming Interface 國際中文版 (下冊)$800$632 -
C++ Primer, 5/e (繁體中文版)$990$782 -
Working Effectively with Legacy Code : 管理、修改、重構遺留程式碼的藝術 (中文版)$720$612 -
$594HikariCP 數據庫連接池實戰 -
像程式設計師這樣思考|鍛鍊程式設計思維 (Think Like a Programmer: An Introduction to Creative Problem Solving)$400$316 -
數學圖鑑:擺脫挫折、提升數感,用圖像記憶取代死背公式$380$323 -
$407高效制勝 -- 程序員面試典型題解 (全彩印刷) -
$828Redis 核心原理與實踐 -
Good Code, Bad Code|寫出高品質的程式碼 (Good Code, Bad Code: Think Like a Software Engineer)$520$410 -
機器學習聖經:最完整的統計學習方法$880$695 -
Test-Driven Development 學習手冊$580$458 -
$421算法設計與分析 — 基於計算教學論的解析 -
設計模式之美$580$435 -
$555一本書講透 Java 線程:原理與實踐 -
$351二進制安全基礎 -
AI 時代 Math 元年 : 用 Python 全精通矩陣及線性代數$1,280$1,011 -
AI 時代 Math 元年 - 用 Python 全精通統計及機率 (黑白印刷)$1,200$948 -
建立演進式系統架構|支援常態性的變更, 2/e (Building Evolutionary Architectures: Automated Software Governance, 2/e)$580$458 -
Beyond XSS:探索網頁前端資安宇宙$880$695 -
Linux 核心除錯實務 (Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules)$800$600 -
API 設計模式|簡化整合的訊息交換技術 (Patterns for API Design: Simplifying Integration with Loosely Coupled Message Exchanges)$850$637 -
演算法導論, 4/e (Introduction to Algorithms, 4/e)$1,800$1,422 -
資料工程基礎|規劃和建構強大、穩健的資料系統 (Fundamentals of Data Engineering)$980$774
相關主題
商品描述
軟件開發是一門技術,更是一門藝術。設計模式是面向對象軟件開發的入門功夫,是前人經驗的積累,它為構建可維護性和可覆用性俱佳的軟件而誕生。本書結合大量應用實例分析和講解每個設計模式,力求通過易於接受的方式讓讀者學習和理解設計模式,並在真實項目實例的引導下學會選擇和合理運用設計模式。 本書分為四部分,共26章內容:第1部分(第1章、第2章)為基礎知識,包括設計模式概述、UML類圖與面向對象設計原則等;第2部分(第3~8章)為創建的藝術,包括6種常用的創建型設計模式;第3部分(第9~15章)為組合的藝術,包括7種常用的結構型設計模式;第4部分(第16~26章)為交互的藝術,包括11種常用的行為型設計模式。 本書可作為一線軟件開發人員、高等院校計算機及軟件等相關專業師生、IT培訓機構講師和學員、業餘軟件開發人員、設計模式研究人員以及愛好者的參考用書和自學讀物
作者簡介
劉偉,中南大學計算機應用技術博士,高級工程師,中國計算機學會會員,國家認證系統分析師,首批國家認證系統架構設計師,數據庫系統工程師,微軟認證系統工程師,CSDN認證專家及知名博主。具有十多年軟件開發、項目管理及教育培訓經驗,為多家企業提供IT咨詢和培訓服務。在設計模式、代碼重構、軟件需求、軟件架構、UML建模技術等領域擁有多年研究與應用經驗,主持和參與四十多個軟件項目的研發工作,擁有軟件著作權十餘項,發表相關論文二十多篇,已出版《設計模式》、《設計模式實訓教程》、《C#設計模式》、《設計模式的藝術——軟件開發人員內功修煉之道》等多部著作。
目錄大綱
第1部分 基礎知識
第1章 從招式與內功談起——設計模式概述
1.1 設計模式從何而來
1.2 設計模式是什麼
1.3 設計模式有什麼用
1.4 個人觀點
第2章 預備知識——UML類圖與面向對象設計原則
2.1 UML概述
2.2 類與類的UML圖示
2.3 類之間的關系
2.4 面向對象設計原則概述
2.5 單一職責原則
2.6 開閉原則
2.7 裏氏代換原則
2.8 依賴倒轉原則
2.9 接口隔離原則
2.10 合成覆用原則
2.11 迪米特法則
第2部分 創建的藝術——創建型模式
第3章 確保對象的唯一性——單例模式
3.1 單例模式的動機
3.2 單例模式概述
3.3 負載均衡器的設計
3.4 餓漢式單例與懶漢式單例的討論
3.5 一種更好的單例實現方法
3.6 單例模式總結
第4章 集中式工廠的實現——簡單工廠模式
4.1 圖表庫的設計
4.2 簡單工廠模式概述
4.3 完整解決方案
4.4 方案的改進
4.5 創建對象與使用對象
4.6 簡單工廠模式的簡化
4.7 簡單工廠模式總結
第5章 多態工廠的實現——工廠方法模式
5.1 日誌記錄器的設計
5.2 工廠方法模式概述
5.3 完整解決方案
5.4 反射與配置文件
5.5 重載的工廠方法
5.6 工廠方法的隱藏
5.7 工廠方法模式總結
第6章 產品族的創建——抽象工廠模式
6.1 界面皮膚庫的初始設計
6.2 產品等級結構與產品族
6.3 抽象工廠模式概述
6.4 完整解決方案
6.5 開閉原則的傾斜性
6.6 抽象工廠模式總結
第7章 對象的克隆——原型模式
7.1 大同小異的工作周報
7.2 原型模式概述
7.3 完整解決方案
7.4 帶附件的周報
7.5 原型管理器的引入和實現
7.6 原型模式總結
第8章 覆雜對象的組裝與創建——建造者模式
8.1 遊戲角色設計
8.2 建造者模式概述
8.3 完整解決方案
8.4 關於Director的進一步討論
8.5 建造者模式總結
第3部分 組合的藝術——結構型模式
第9章 不兼容結構的協調——適配器模式
9.1 沒有源碼的算法庫
9.2 適配器模式概述
9.3 完整解決方案
9.4 類適配器模式
9.5 雙向適配器模式
9.6 缺省適配器模式
9.7 適配器模式總結
第10章 處理多維度變化——橋接模式
10.1 跨平臺圖像瀏覽系統
10.2 橋接模式概述
10.3 完整解決方案
10.4 適配器模式與橋接模式的聯用
10.5 橋接模式總結
第11章 樹形結構的處理——組合模式
11.1 設計殺毒軟件的框架結構
11.2 組合模式概述
11.3 完整解決方案
11.4 透明組合模式與安全組合模式
11.5 Sunny公司組織結構
11.6 組合模式總結
第12章 擴展系統功能——裝飾模式
12.1 圖形界面構件庫的設計
12.2 裝飾模式概述
12.3 完整解決方案
12.4 透明裝飾模式與半透明裝飾模式
12.5 裝飾模式註意事項
12.6 裝飾模式總結
第13章 提供統一入口——外觀模式
13.1 文件加密模塊的設計
13.2 外觀模式概述
13.3 完整解決方案
13.4 抽象外觀類的引入
13.5 外觀角色設計補充說明
13.6 外觀模式總結
第14章 實現對象的覆用——享元模式
14.1 圍棋棋子的設計
14.2 享元模式概述
14.3 完整解決方案
14.4 帶外部狀態的解決方案
14.5 單純享元模式和覆合享元模式
14.6 關於享元模式的幾點補充
14.7 享元模式總結
第15章 對象的間接訪問——代理模式
15.1 收費商務信息查詢系統的設計
15.2 代理模式概述
15.3 完整解決方案
15.4 遠程代理
15.5 虛擬代理
15.6 Java動態代理
15.7 代理模式總結
第4部分 交互的藝術——行為型模式
第16章 請求的鏈式處理——職責鏈模式
16.1 采購單的分級審批
16.2 職責鏈模式概述
16.3 完整解決方案
16.4 純與不純的職責鏈模式
16.5 職責鏈模式總結
第17章 請求發送者與接收者解耦——命令模式
17.1 自定義功能鍵
17.2 命令模式概述
17.3 完整解決方案
17.4 命令隊列的實現
17.5 撤銷操作的實現
17.6 請求日誌
17.7 宏命令
17.8 命令模式總結
第18章 自定義語言的實現——解釋器模式
18.1 機器人控制程序
18.2 文法規則和抽象語法樹
18.3 解釋器模式概述
18.4 完整解決方案
18.5 再談Context的作用
18.6 解釋器模式總結
第19章 遍歷聚合對象中的元素——疊代器模式
19.1 銷售管理系統中數據的遍歷
19.2 疊代器模式概述
19.3 完整解決方案
19.4 使用內部類實現疊代器
19.5 JDK內置疊代器
19.6 疊代器模式總結
第20章 協調多個對象之間的交互——中介者模式
20.1 客戶信息管理窗口的初始設計
20.2 中介者模式概述
20.3 完整解決方案
20.4 中介者與同事類的擴展
20.5 中介者模式總結
第21章 撤銷功能的實
目錄
配套資源下載
第1部分基 礎 知 識
第1章從招式與內功談起——設計模式概述
1.1設計模式從何而來
1.2設計模式是什麼
1.3設計模式有什麼用
1.4個人觀點
第2章預備知識——UML類圖與面向對象設計原則
2.1UML概述
2.2類與類的UML圖示
2.3類之間的關系
2.4面向對象設計原則概述
2.5單一職責原則
2.6開閉原則
2.7裏氏代換原則
2.8依賴倒轉原則
2.9接口隔離原則
2.10合成復用原則
2.11迪米特法則
第2部分創建的藝術——創建型模式
第3章確保對象的唯一性——單例模式
3.1單例模式的動機
3.2單例模式概述
3.3負載均衡器的設計
3.4餓漢式單例與懶漢式單例的討論
3.5一種更好的單例實現方法
3.6單例模式總結
第4章集中式工廠的實現——簡單工廠模式
4.1圖表庫的設計
4.2簡單工廠模式概述
4.3完整解決方案
4.4方案的改進
4.5創建對象與使用對象
4.6簡單工廠模式的簡化
4.7簡單工廠模式總結
第5章多態工廠的實現——工廠方法模式
5.1日誌記錄器的設計
5.2工廠方法模式概述
5.3完整解決方案
5.4反射與配置文件
5.5重載的工廠方法
5.6工廠方法的隱藏
5.7工廠方法模式總結
第6章產品族的創建——抽象工廠模式
6.1界麵皮膚庫的初始設計
6.2產品等級結構與產品族
6.3抽象工廠模式概述
6.4完整解決方案
6.5開閉原則的傾斜性
6.6抽象工廠模式總結
第7章對象的克隆——原型模式
7.1大同小異的工作周報
7.2原型模式概述
7.3完整解決方案
7.4帶附件的周報
7.5原型管理器的引入和實現
7.6原型模式總結
第8章復雜對象的組裝與創建——建造者模式
8.1遊戲角色設計
8.2建造者模式概述
8.3完整解決方案
8.4關於Director的進一步討論
8.5建造者模式總結
第3部分組合的藝術——結構型模式
第9章不兼容結構的協調——適配器模式
9.1沒有源碼的算法庫
9.2適配器模式概述
9.3完整解決方案
9.4類適配器模式
9.5雙向適配器模式
9.6默認適配器模式
9.7適配器模式總結
第10章處理多維度變化——橋接模式
10.1跨平臺圖像瀏覽系統
10.2橋接模式概述
10.3完整解決方案
10.4適配器模式與橋接模式的聯用
10.5橋接模式總結
第11章樹形結構的處理——組合模式
11.1設計殺毒軟件的框架結構
11.2組合模式概述
11.3完整解決方案
11.4透明組合模式與安全組合模式
11.5Sunny公司組織結構
11.6組合模式總結
第12章擴展系統功能——裝飾模式
12.1圖形界面構件庫的設計
12.2裝飾模式概述
12.3完整解決方案
12.4透明裝飾模式與半透明裝飾模式
12.5裝飾模式註意事項
12.6裝飾模式總結
第13章提供統一入口——外觀模式
13.1文件加密模塊的設計
13.2外觀模式概述
13.3完整解決方案
13.4抽象外觀類的引入
13.5外觀角色設計補充說明
13.6外觀模式總結
第14章實現對象的復用——享元模式
14.1圍棋棋子的設計
14.2享元模式概述
14.3完整解決方案
14.4帶外部狀態的解決方案
14.5單純享元模式和復合享元模式
14.6關於享元模式的幾點補充
14.7享元模式總結
第15章對象的間接訪問——代理模式
15.1收費商務信息查詢系統的設計
15.2代理模式概述
15.3完整解決方案
15.4遠程代理
15.5虛擬代理
15.6Java動態代理
15.7代理模式總結
第4部分交互的藝術——行為型模式
第16章請求的鏈式處理——職責鏈模式
16.1採購單的分級審批
16.2職責鏈模式概述
16.3完整解決方案
16.4純與不純的職責鏈模式
16.5職責鏈模式總結
第17章請求發送者與接收者解耦——命令模式
17.1自定義功能鍵
17.2命令模式概述
17.3完整解決方案
17.4命令隊列的實現
17.5撤銷操作的實現
17.6請求日誌
17.7宏命令
17.8命令模式總結
第18章自定義語言的實現——解釋器模式
18.1機器人控製程序
18.2文法規則和抽象語法樹
18.3解釋器模式概述
18.4完整解決方案
18.5再談Context的作用
18.6解釋器模式總結
第19章遍歷聚合對象中的元素——疊代器模式
19.1銷售管理系統中數據的遍歷
19.2疊代器模式概述
19.3完整解決方案
19.4使用內部類實現疊代器
19.5JDK內置疊代器
19.6疊代器模式總結
第20章協調多個對象之間的交互——中介者模式
20.1客戶信息管理窗口的初始設計
20.2中介者模式概述
20.3完整解決方案
20.4中介者與同事類的擴展
20.5中介者模式總結
第21章撤銷功能的實現——備忘錄模式
21.1可悔棋的中國象棋
21.2備忘錄模式概述
21.3完整解決方案
21.4實現多次撤銷
21.5再談備忘錄的封裝
21.6備忘錄模式總結
第22章對象間的聯動——觀察者模式
22.1多人聯機對戰遊戲的設計
22.2觀察者模式概述
22.3完整解決方案
22.4JDK對觀察者模式的支持
22.5觀察者模式與Java事件處理
22.6觀察者模式與MVC
22.7觀察者模式總結
第23章對象狀態及其轉換——狀態模式
23.1銀行系統中的賬戶類設計
23.2狀態模式概述
23.3完整解決方案
23.4共享狀態
23.5使用環境類實現狀態轉換
23.6狀態模式總結
第24章算法的封裝與切換——策略模式
24.1電影票打折方案
24.2策略模式概述
24.3完整解決方案
24.4策略模式的兩個典型應用
24.5策略模式總結
第25章定義算法的框架——模板方法模式
25.1銀行利息計算模塊
25.2模板方法模式概述
25.3完整解決方案
25.4鉤子方法的使用
25.5模板方法模式總結
第26章操作復雜對象結構——訪問者模式
26.1OA系統中員工數據匯總
26.2訪問者模式概述
26.3完整解決方案
26.4訪問者模式與組合模式聯用
26.5訪問者模式總結
附錄A常用設計模式的定義及結構圖
A.1創建型設計模式
A.2結構型設計模式
A.3行為型設計模式
參考文獻



