2024香港最具教育競爭力中學/小學/幼稚園50強龍虎榜
2024香港最具教育競爭力中學/小學/幼稚園排名指南
最近十一年香港最具教育競爭力中學/小學/幼稚園50強完整版榜單:
2024202320222021/202019201820172016201520142013
教育競爭力評比體系說明
校風評比體系說明
服务全球华人的中英文書籍網上書店
您的購物車是空的

研磨設計模式

  • 作者:陳臣,王斌 著
  • 出版社: 清華大學出版社
  • 出版時間:2011-01-01
  • 版次:1
  • 商品編號: 10400909

    頁數:783

    裝幀:平裝

    開本:16開

    紙張:膠版紙

    印次:3

    ISBN:9787302239239

    印刷時間:2012-09-01

    正文語種:中文


HK$116.70 (速遞費用須知)
購買額滿HK$158免運費
免郵費優惠僅限香港、澳门、
台灣及中國大陸

購買數量:

內容簡介

 

內容簡介

 

  《研磨設計模式》完整覆蓋GoF講述的23個設計模式並加以細細研磨。初級內容從基本講起,包括每個模式的定義、功能、思路、結構、基本實現、運行調用順序、基本應用示例等,讓讀者能系統、完整、準確地掌握每個模式,培養正確的「設計觀」;中高級內容則深入探討如何理解這些模式,包括模式中蘊涵什麼樣的設計思想,模式的本質是什麼,模式如何結合實際應用,模式的優缺點以及與其他模式的關係等,以期讓讀者儘量去理解和掌握每個設計模式的精髓所在。
  《研磨設計模式》在內容上深入、技術上實用、和實際開發結合程度很高,書中大部分的示例程序都是從實際項目中簡化而來,因此很多例子都可以直接拿到實際項目中使用。如果你想要深入透徹地理解和掌握設計模式,並期望能真正把設計模式應用到項目中去,那麼這是你不可錯過的一本好書。
  《研磨設計模式》難度為初級到中級,適合於所有開發人員、設計人員或者即將成為開發人員的朋友。也可以作為高校學生深入學習設計模式的參考讀物。

 

目錄

 

第1章 設計模式基礎
1.1 設計模式是什麼
1.1.1 什麼是模式
1.1.2 設計模式的概念
1.1.3 設計模式的理解
1.1.4 設計模式的歷史
1.2 設計模式有什麼
1.2.1 設計模式的組成
1.2.2 設計模式的分類
1.3 設計模式的學習
1.3.1 為什麼要學習設計模式
1.3.2 學習設計模式的層次
1.3.3 如何學習設計模式
1.4 本書的組織方式
1.4.1 本書所講述的設計模式的提綱
1.4.2 每個模式的講述結構

第2章 簡單工廠
2.1 場景問題
2.1.1 接口回顧
2.1.2 面向接口編程
2.1.3 不用模式的解決方案
2.1.4 有何問題
2.2 解決方案
2.2.1 使用簡單工廠來解決問題
2.2.2 簡單工廠的結構和說明
2.2.3 簡單工廠示例代碼
2.2.4 使用簡單工廠重寫示例
2.3 模式講解
2.3.1 典型疑問
2.3.2 認識簡單工廠
2.3.3 簡單工廠中方法的寫法
2.3.4 可配置的簡單工廠
2.3.5 簡單工廠的優缺點
2.3.6 思考簡單工廠
2.3.7 相關模式

第3章 外觀模式
3.1 場景問題
3.1.1 生活中的示例
3.1.2 代碼生成的應用
3.1.3 不用模式的解決方案
3.1.4 有何問題
3.2 解決方案
3.2.1 使用外觀模式來解決問題
3.2.2 外觀模式的結構和說明
3.2.3 外觀模式示例代碼
3.2.4 使用外觀模式重寫示例
3.3 模式講解
3.3.1 認識外觀模式
3.3.2 外觀模式的實現
3.3.3 外觀模式的優缺點
3.3.4 思考外觀模式
3.3.5 相關模式

第4章 適配器模式(Adapter)
4.1 場景問題
4.1.1 裝配電腦的例子
4.1.2 同時支持數據庫和文件的日誌管理
4.1.3 有何問題
4.2 解決方案
4.2.1 使適配器模式來解決問題
4.2.2 模式的結構和說明
4.2.3 適配器模式示例代碼
4.2.4 使用適配器模式來實現示例
4.3 模式講解
4.3.1 認識適配器模式
4.3.2 適配器模式的實現
4.3.3 雙向適配器
4.3.4 對象適配器和類適配器
4.3.5 適配器模式的優缺點
4.3.6 思考適配器模式
4.3.7 相關模式

第5章 單例模式(Singleton)
5.1 場景問題
5.1.1 讀取配置文件的內容
5.1.2 不用模式的解決方案
5.1.3 有何問題
5.2 解決方案
5.2.1 使用單例模式來解決問題
5.2.2 單例模式的結構和說明
5.2.3 單例模式示例代碼
5.2.4 使用單例模式重寫示例
5.3 模式講解
5.3.1 認識單例模式
5.3.2 懶漢式和餓漢式實現
5.3.3 延遲加載的思想
5.3.4 緩存的思想
5.3.5 Java中緩存的基本實現
5.3.6 利用緩存來實現單例模式
5.3.7 單例模式的優缺點
5.3.8 在Java中一種更好的單例實現方式
5.3.9 單例和枚舉
5.3.10 思考單例模式
5.3.11 相關模式

第6章 工廠方法模式(Factory Method)
6.1 場景問題
6.1.1 導出數據的應用框架
6.1.2 框架的基礎知識
6.1.3 有何問題
6.2 解決方案
6.2.1 使用工廠方法模式來解決問題
6.2.2 工廠方法模式的結構和說明
6.2.3 工廠方法模式示例代碼
6.2.4 使用工廠方法模式來實現示例
6.3 模式講解
6.3.1 認識工廠方法模式
6.3.2 工廠方法模式與IoC/DI
6.3.3 平行的類層次結構
6.3.4 參數化工廠方法
6.3.5 工廠方法模式的優缺點
6.3.6 思考工廠方法模式
6.3.7 相關模式

第7章 抽象工廠模式 (Abstract Factory)
7.1 場景問題
7.1.1 選擇組裝電腦的配件
7.1.2 不用模式的解決方案
7.1.3 有何問題
7.2 解決方案
7.2.1 使用抽象工廠模式來解決問題
7.2.2 抽象工廠模式的結構和說明
7.2.3 抽象工廠模式示例代碼
7.2.4 使用抽象工廠模式重寫示例
7.3 模 式 講 解
7.3.1 認識抽象工廠模式
7.3.2 定義可擴展的工廠
7.3.3 抽象工廠模式和DAO
7.3.4 抽象工廠模式的優缺點
7.3.5 思考抽象工廠模式
7.3.6 相關模式

第8章 生成器模式(Builder)
8.1 場景問題
8.1.1 繼續導出數據的應用框架
8.1.2 不用模式的解決方案
8.1.3 有何問題
8.2 解決方案
8.2.1 使用生成器模式來解決問題
8.2.2 生成器模式的結構和說明
8.2.3 生成器模式示例代碼
8.2.4 使用生成器模式重寫示例
8.3 模式講解
8.3.1 認識生成器模式
8.3.2 生成器模式的實現
8.3.3 使用生成器模式構建複雜對象
8.3.4 生成器模式的優點
8.3.5 思考生成器模式
8.3.6 相關模式

第9章 原型模式(Prototype)
9.1 場景問題
9.1.1 訂單處理系統
9.1.2 不用模式的解決方案
9.1.3 有何問題
9.2 解決方案
9.2.1 使用原型模式來解決問題
9.2.2 原形模式的結構和說明
9.2.3 原型模式示例代碼
9.2.4 使用原型模式重寫示例
9.3 模式講解
9.3.1 認識原型模式
9.3.2 Java中的克隆方法
9.3.3 淺度克隆和深度克隆
9.3.4 原型管理器
9.3.5 原型模式的優缺點
9.3.6 思考原型模式
9.3.7 相關模式

第10章 中介者模式(Mediator)
10.1 場景問題
10.1.1 如果沒有主板
10.1.2 有何問題
10.1.3 使用電腦來看電影
10.2 解決方案
10.2.1 使用中介者模式來解決問題
10.2.2 中介者模式的結構和說明
10.2.3 中介者模式示例代碼
10.2.4 使用中介者模式來實現示例
10.3 模式講解
10.3.1 認識中介者模式
10.3.2 廣義中介者
10.3.3 中介者模式的優缺點
10.3.4 思考中介者模式
10.3.5 相關模式

第11章 代 理 模 式(Proxy)
11.1 場景問題
11.1.1 訪問多條數據
11.1.2 不用模式的解決方案
11.1.3 有何問題
11.2 解決方案
11.2.1 使用代理模式來解決問題
11.2.2 代理模式的結構和說明
11.2.3 代理模式示例代碼
11.2.4 使用代理模式重寫示例
11.3 模式講解
11.3.1 認識代理模式
11.3.2 保護代理
11.3.3 Java中的代理
11.3.4 代理模式的特點
11.3.5 思考代理模式
11.3.6 相關模式

第12章 觀察者模式(Observer)
12.1 場景問題
12.1.1 訂閱報紙的過程
12.1.2 訂閱報紙的問題
12.2 解決方案
12.2.1 使用觀察者模式來解決問題
12.2.2 觀察者模式的結構和說明
12.2.3 觀察者模式示例代碼
12.2.4 使用觀察者模式實現示例
12.3 模式講解
12.3.1 認識觀察者模式
12.3.2 推模型和拉模型
12.3.3 Java中的觀察者模式
12.3.4  觀察者模式的優缺點
12.3.5 思考觀察者模式
12.3.6 Swing中的觀察者模式
12.3.7 簡單變形示例——區別對待觀察者
12.3.8 相關模式

第13章 命令模式(Command)
13.1 場景問題
13.1.1 如何開機
13.1.2 與我何干
13.1.3 有何問題
13.2 解決方案
13.2.1 使用命令模式來解決問題
13.2.2 命令模式的結構和說明
13.2.3 命令模式示例代碼
13.2.4 使用命令模式來實現示例
13.3 模式解
13.3.1 認識命令模式
13.3.2 參數化配置
13.3.3 可撤銷的操作
13.3.4 宏命令
13.3.5 隊列請求
13.3.6 日誌請求
13.3.7 命令模式的優點
13.3.8 思考命令模式
13.3.9 退化的命令模式
13.3.10 相關模式

第14章 迭代器模式(Iterator)
14.1 場景問題
14.1.1 工資表數據的整合
14.1.2 有何問題
14.2 解決方案
14.2.1 使用迭代器模式來解決問題
14.2.2 選化器模式的結構和說明
14.2.3 迭代器模式示例代碼
14.2.4 使用迭代器模式來實現示例
14.3 模式講解
14.3.1 認識迭代器模式
14.3.2 使用Java的迭代器
14.3.3 帶迭代策略的迭代器
14.3.4 雙向迭代器
14.3.5 迭代器模式的優點
14.3.6 思考迭代器模式
14.3.7 翻頁迭代
14.3.8 相關模式

第15章 組合模式(Composite)
15.1 場景問題
15.1.1 商品類別樹
15.1.2 不用模式的解決方案
15.1.3 有何問題
15.2 解決方案
15.2.1 使用組合模式來解決問題
15.2.2 組合模式的結構和說明
15.2.3 組合模式示例代碼
15.2.4 使用組合模式重寫示例
15.3 模式講解
15.3.1 認識組合模式
15.3.2 安全性和透明性
15.3.3 父組件引用
15.3.4 環狀引用
15.3.5 組合模式的優缺點
15.3.6 思考組合模式
15.3.7 相關模式

第16章 模板方法模式(Template Method)
16.1 場景問題
16.1.1 登錄控制
16.1.2 不用模式的解決方案
16.1.3 有何問題
16.2 解決方案
16.2.1 使用模板方法模式來解決問題
16.2.2 模板方法模式的結構和說明
16.2.3 模板方法模式示例代碼
16.2.4 使用模板方法模式重寫示例
16.3 模式講解
16.3.1 認識模板方法模式
16.3.2 模板的寫法
16.3.3 Java回調與模板方法模式
16.3.4 典型應用:排序
16.3.5 實現通用的增刪改查
16.3.6 模板方法模式的優缺點
16.3.7 思考模板方法模式
16.3.8 相關模式

第17章 策略模式(Strategy)
17.1 場景問題
17.1.1 報價管理
17.1.2 不用模式的解決方案
17.1.3 有何問題
17.2 解 決 方 案
17.2.1 使用策略模式來解決問題
17.2.2 策略模式的結構和說明
17.2.3 策略模式示例代碼
17.2.4 使用策略模式重寫示例
17.3 模式講解
17.3.1 認識策略模式
17.3.2 Context和Strategy的關係
17.3.3 容錯恢復機制
17.3.4 策略模式結合模板方法模式
17.3.5 策略模式的優缺點
17.3.6 思考策略模式
17.3.7 相關模式

第18章 狀態模式(State)
18.1 場景問題
18.1.1 實現在線投票
18.1.2 不用模式的解決方案
18.1.3 有何問題
18.2 解決方案
18.2.1 使用狀態模式來解決問題
18.2.2 狀態模式的結構和說明
18.2.3 狀態模式示例代碼
18.2.4 使用狀態模式重寫示例
18.3 模式講解
18.3.1 認識狀態模式
18.3.2 狀態的維護和轉換控制
18.3.3 使用數據庫來維護狀態
18.3.4 模擬工作流
18.3.5 狀態模式的優缺點
18.3.6 思考狀態模式
18.3.7 相關模式

第19章 備忘錄模式(Memento)
19.1 場景問題
19.1.1 開發仿真系統
19.1.2 不用模式的解決方案
19.1.3 有何問題
19.2 解決方案
19.2.1 使用備忘錄模式來解決問題
19.2.2 備忘錄模式的結構和說明
19.2.3 備忘錄模式示例代碼
19.2.4 使用備忘錄模式重寫示例
19.3 模式講解
19.3.1 認識備忘錄模式
19.3.2 結合原型模式
19.3.3 離線存儲
19.3.4 再次實現可撤銷操作
19.3.5 備忘錄模式的優缺點
19.3.6 思考備忘錄模式
19.3.7 相關模式

第20章 享元模式(Flyweight)
20.1 場景問題
20.1.1 加入權限控制
20.1.2 不使用模式的解決方案
20.1.3 有何問題
20.2 解決方案
20.2.1 使用享元模式來解決問題
20.2.2 享元模式的結構和說明
20.2.3 享元模式示例代碼
20.2.4 使用享元模式重寫示例
20.3 模式講解
20.3.1 認識享元模式
20.3.2 不需要共享的享元實現
20.3.3 對享元對象的管理
20.3.4 享元模式的優缺點
20.3.5 思考享元模式
20.3.6 相關模式

第21章 解釋器模式(Interpreter)
21.1 場景問題
21.1.1 讀取配置文件
21.1.2 不用模式的解決方案
21.1.3 有何問題
21.2 解決方案
21.2.1 使用解釋器模式來解決問題
21.2.2 解釋器模式的結構和說明
21.2.3 解釋器模式示例代碼
21.2.4 使用解釋器模式重寫示例
21.3 模式講解
21.3.1 認識解釋器模式
21.3.2 讀取多個元素或屬性的值
21.3.3 解析器
21.3.4 解釋器模式的優缺點
21.3.5 思考解釋器模式
21.3.6 相關模式

第22章 裝飾模式(Decorator)
22.1 場景問題
22.1.1 複雜的獎金計算
22.1.2 簡化後的獎金計算體系
22.1.3 不用模式的解決方案
22.1.4 有何問題
22.2 解決方案
22.2.1 使用裝飾模式來解決問題
22.2.2 裝飾模式的結構和說明
22.2.3 裝飾模式示例代碼
22.2.4 使用裝飾模式重寫示例
22.3 模式講解
22.3.1 認識裝飾模式
22.3.2 Java中的裝飾模式應用
22.3.3 裝飾模式和AOP
22.3.4 裝飾模式的優缺點
22.3.5 思考裝飾模式
22.3.6 相關模式

第23章 職責鏈模式(Chain of Responsibility)
23.1 場景問題
23.1.1 申請聚餐費用
23.1.2 不用模式的解決方案
23.1.3 有何問題
23.2 解決方案
23.2.1 使用職責鏈模式來解決問題
23.2.2 職責鏈模式的結構和說明
23.2.3 職責鏈模式示例代碼
23.2.4 使用職責鏈模式重寫示例
23.3 模式講解
23.3.1 認識職責鏈模式
23.3.2 處理多種請求
23.3.3 功能鏈
23.3.4 職責鏈模式的優缺點
23.3.5 思考職責鏈模式
23.3.6 相關模式

第24章 橋接模式(Bridge)
24.1 場景問
24.1.1 發送提示消息
24.1.2 不用模式的解決方案
24.1.3 有何問題
24.2 解決方案
24.2.1 使用橋接模式來解決問題
24.2.2 橋接模式的結構和說明
24.2.3 橋接模式示例代碼
24.2.4 使用橋接模式重寫示例
24.3 模式講解
24.3.1 認識橋接模式
24.3.2 誰來橋接
24.3.3 典型例子——JDBC
24.3.4 廣義橋接——Java中無處不橋接
24.3.5 橋接模式的優缺點
24.3.6 思考橋接模式
24.3.7 相關模式

第25章 訪問者模式(Visitor)
25.1 場景問題
25.1.1 擴展客戶管理的功能
25.1.2 不用模式的解決方案
25.1.3 有何問題
25.2 解決方案
25.2.1 使用訪問者模式來解決問題
25.2.2 訪問者模式的結構和說明
25.2.3 訪問者模式示例代碼
25.2.4 使用訪問者模式重寫示例
25.3 模式講解
25.3.1 認識訪問者模式
25.3.2 操作組合對象結構
25.3.3 誰負責遍歷所有元素對象
25.3.4 訪問者模式的優缺點
25.3.5 思考訪問者模式
25.3.6 相關模式

附錄A 常見面向對象設計原則
A.1 設計模式和設計原則
A.1.1 設計模式和設計原則的關係
A.1.2 為何不重點講解設計原則
A.2 常見的面向對象設計原則
A.2.1 單一職責原則SRP(Single Responsibility Principle)
A.2.2 開放-關閉原則OCP(Open-Closed Principle)
A.2.3 裡氏替換原則LSP(Liskov Substitution Principle)
A.2.4 依賴倒置原則DIP(Dependence Inversion Principle)
A.2.5 接口隔離原則ISP(Interface Segregation Principle)
A.2.6 最少知識原則LKP(Least Knowledge Principle)
A.2.7 其他原則

附錄B UML簡介
B.1 UML基礎
B.1.1 UML是什麼
B.1.2 UML歷史
B.1.3 UML能幹什麼
B.1.4 UML有什麼
B.2 類圖
B.2.1 類圖的概念
B.2.2 類圖的基本表達
B.2.3 抽象類和接口
B.2.4 關係
B.3 順序圖
B.3.1 順序圖的概念
B.3.2 順序圖的基本表達
臨別贈言
不是結束而是新的開始
你該怎麼做
參考文獻



我們接受以下的付款方式︰VISA、Mastercard、JCB 信用卡、PayPal、銀行轉帳。