基本信息
作者:劉濟華(作者)出版社:清華大學出版社; 第1版 (2012年1月1日)
平裝:279頁
正文語種:簡體中文
開本:16
ISBN:9787302273028
條形碼:9787302273028
商品尺寸: 22.8 x 18.6 x 1.4 cm
商品重量: 499 g
內容簡介
《漫談設計模式:從面向對象開始》內容簡介:模式引入計算機科學領域已經有20餘年了,最初人們側重於面向對象的設計,而現在已經套用於計算機領域的各個方面,它們對計算機產生了深遠影響。
若想一本書涵蓋所有模式,那么《漫談設計模式:從面向對象開始》將會非常龐大,以前的設計模式書籍專注於介紹設計模式,雖然讀者了解了這些設計模式,但是仍然不知道如何合理地使用它們,往往導致讀者為了使用設計模式而設計,而不是從問題出發,使用設計模式優雅地解決這些問題。
《漫談設計模式:從面向對象開始》主要從最基本的設計模式入手,並結合一些J2EE開發過程經常遇見的技術和概念,你將全面理解這10多個設計模式,並在開發過程中,讓你真正體會和思考面向對象編程的思想,也只有掌握這些,你才會能成為一位真正的設計專家。
《漫談設計模式:從面向對象開始》不是一本面向對象和Java語言的入門書籍,閱讀對象主要是從事Java語言的軟體開發人員但不限於Java語言的開發人員。
編輯推薦
《漫談設計模式:從面向對象開始》特色:從面向對象的眼光分析問題,並引入模式。給出J2EE實例,這些例子都是J2EE套用中被經常使用的。類比相近的模式,使讀者能夠掌握它們之間的區別與聯繫。融入軟體開發設計原則,指導讀者在實踐中正確使用這些原則。
如果您:反覆研習面向對象編程,然而並未開發出真正面向對象的系統。套用了面向對象模式,但並未享受到面向對象為軟體帶來的好處。對模式和面向對象的理解停隧於表面,不會使用面向對象的觀點分析問題。那么您應該閱讀《漫談設計模式:從面向對象開始》。
沒有談神馬,也沒有講浮雲,漫談設計模式,也漫談面向對象(OO),放棄過程式編程(FP/PP),玩轉面向對象編程(OOP),輔以面向切面編程(AOP)不要if-else,不要重複自己(DRY)反轉控制(IOC),反轉依賴(DI),工單例模式,廠方法模式,飾器模式,原型模式,愛編程,也愛琢磨,愛鑽研,更愛分享,我是程式設計師,漫談設計模式背後的軟體設計思想。
作者簡介
劉濟華,現任惠普公司ITSM顧問,曾在電信、金融、保險等多個行業參與開發了多個大型項目和產品,參與過UMS系統、保險核心業務系統、銀行系統、CRM系統、ITSM系統軟體研發。熱衷於編寫優良代碼以及研究如何提高開發效率,對面向對象開發與設計有較深層次理解,致力於使用OOP為複雜領域問題建模。喜歡鑽研並套用一些出色的模式,以及支持軟體高效開發設計的流程和方法,是領域驅動開發(Domain-Driven Design)和敏捷(Agile)開發方法的忠實冬粉。
目錄
第一篇 模式介紹
第1章 談面向對象和模式
1.1 什麼是對象
1.2 面向對象的好處
1.3 重用
1.4 模式簡史
1.5 什麼是模式
1.6 學習設計模式的一些常見 問題
1.7 本章關鍵字
第2章 第1個模式——模板 方法(template method) 模式
2.1 從回家過年說起
2.1.1 dry(don't repeat yourself)
2.1.2 變化+重複,如何 維護
2.2 模板方法(template method) 模式
2.2.1 使用繼承
2.2.2 模板方法模式
2.3 引入回調(callback)
2.4 總結
2.5 本章關鍵字
第二篇 創建對象
第3章 單例(singleton)模式
3.1 最簡單的單例
3.2 進階
3.2.1 延遲創建
3.2.2 執行緒安全
3.2.3 double-check locking
3.2.4 initialization on demand holder
3.2.5 singleton的序列化
3.3 總結
3.4 本章關鍵字
第4章 工廠方法(factory method) 模式
4.1 工廠方法模式
4.1.1 類圖
4.1.2 創建資料庫連線對象
4.2 靜態工廠方法
4.3 總結
4.4 本章關鍵字
第5章 原型(prototype)模式
5.1 原型模式
5.2 寄個快遞
5.3 實現
5.3.1 uml靜態類圖
5.3.2 代碼實現
5.4 深拷貝(deep copy)
5.5 總結
5.6 本章關鍵字
第6章 控制反轉(ioc)
6.1 從創建對象談起
6.2 使用工廠方法模式的問題
6.3 inversion of control
(控制反轉)
6.3.1 ioc和di
(dependency injection,
依賴注入)
6.3.2 service locator
(服務定位器)
6.3.3 dependency injection
6.4 總結
6.5 本章關鍵字
第三篇 構建複雜結構
第7章 裝飾器(decorator)模式
7.1 記錄歷史修改
7.2 open-closed principle(開放-封閉原則,ocp)
7.3 裝飾器(decorator)模式
7.3.1 類圖
7.3.2 實現
7.3.3 一點變化
7.3.4 如何使用
7.3.5 測試
7.4 裝飾器模式的優缺點
7.5 總結
7.6 本章關鍵字
第8章 代理(Proxy)模式
8.1 代理(proxy)模式
8.1.1 類圖
8.1.2 訪問分散式對象
8.2 j2se動態代理
8.2.1 類和接口
8.2.2 調用原理
8.2.3 實現同步
8.2.4 總結
8.3 和裝飾器(decorator)模式的比較
8.4 總結
8.5 本章關鍵字
第9章 適配器(adapter)模式
9.1 打樁
9.2 其他適配器模式
9.2.1 類適配器
9.2.2 雙向適配器
9.3 測試
9.4 和代理(proxy)模式的比較
9.5 總結
9.6 本章關鍵字
第10章 外觀(facade)模式
10.1 外觀(facade)模式
10.2 least knowledge principle
(最少知識原則)
10.3 懶惰的老闆請客
10.4 ejb里的外觀模式
10.5 總結
10.6 本章關鍵字
第11章 組合(composite)模式
11.1 組合模式概述
11.1.1 類圖
11.1.2 使用組合(composite)模式
11.1.3 測試
11.2 透明的組合模式
11.3 安全的組合模式vs透明的組合模式
11.4 還需要注意什麼
11.5 總結
11.6 本章關鍵字
第四篇 行為模式
第12章 策略(strategy)模式
12.1 既要坐飛機又要坐大巴
12.2 封裝變化
12.3 策略模式
12.4 還需要繼承嗎
12.5 優先使用合成而非繼承
12.6 總結
12.7 本章關鍵字
第13章 狀態(state)模式
13.1 電子顏料板
13.2 switch-case實現
13.3 如何封裝變化
13.4 狀態模式
13.5 使用enum類型
13.6 與策略(strategy)模式的比較
13.7 總結
13.8 本章關鍵字
第14章 觀察者(observer)模式
14.1 股票價格變了多少
14.2 觀察者模式
14.2.1 如何實現
14.2.2 觀察者模式
14.2.3 java標準庫的觀察者
模式
14.3 總結
14.4 本章關鍵字
第五篇 終點還是起點
第15章 面向切面的編程(aop)
15.1 記錄時間
15.2 aop(aspect-oriented programming)
15.2.1 一些重要概念
15.2.2 oop實現橫切
15.2.3 aop實現技術
15.3 aop框架介紹
15.4 aop聯盟(aop alliance)
15.5 使用aop編程的風險
15.6 oop還是aop
15.7 總結
15.8 本章關鍵字
第16章 面向對象開發
16.1 寫在面向對象設計之前
16.2 汲取知識
16.3 橫看成嶺側成峰
16.4 提煉模型
16.5 套用設計模式
16.6 不能脫離實現技術
16.7 重構
16.8 過度的開發(over-engineering)
16.9 總結
16.10 本章關鍵字
第17章 結語
17.1 感悟
17.2 面向對象的開發範式
17.3 一些原則
17.4 寫在模式之後
17.5 本章關鍵字
附錄 推薦閱讀資源
1 java語言相關學習圖書
2 j2ee技術相關圖書
3 面向對象設計相關圖書
4 給agile(敏捷)開發人員推薦的書籍
5 網站和論壇
參考文獻