出版時間:2012-1 出版社:清華大學(xué)出版社 作者:劉濟華 頁數(shù):279
Tag標(biāo)簽:無
內(nèi)容概要
模式引入計算機科學(xué)領(lǐng)域已經(jīng)有20余年了,最初人們側(cè)重于面向?qū)ο蟮脑O(shè)計,而現(xiàn)在已經(jīng)應(yīng)用于計算機領(lǐng)域的各個方面,它們對計算機產(chǎn)生了深遠(yuǎn)影響。
若想一本書涵蓋所有模式,那么這本書將會非常龐大,以前的設(shè)計模式書籍專注于介紹設(shè)計模式,雖然讀者了解了這些設(shè)計模式,但是仍然不知道如何合理地使用它們,往往導(dǎo)致讀者為了使用設(shè)計模式而設(shè)計,而不是從問題出發(fā),使用設(shè)計模式優(yōu)雅地解決這些問題。
本書主要從最基本的設(shè)計模式入手,并結(jié)合一些J2EE開發(fā)過程經(jīng)常遇見的技術(shù)和概念,你將全面理解這10多個設(shè)計模式,并在開發(fā)過程中,讓你真正體會和思考面向?qū)ο缶幊痰乃枷耄仓挥姓莆者@些,你才會能成為一位真正的設(shè)計專家。
本書不是一本面向?qū)ο蠛蚃ava語言的入門書籍,閱讀對象主要是從事Java語言的軟件開發(fā)人員但不限于Java語言的開發(fā)人員。
作者簡介
劉濟華現(xiàn)任惠普公司ITSM顧問,曾在電信、金融、保險等多個行業(yè)參與開發(fā)了多個大型項目和產(chǎn)品,參與過UMS系統(tǒng)、保險核心業(yè)務(wù)系統(tǒng)、銀行系統(tǒng)、CRM系統(tǒng)、ITSM系統(tǒng)軟件研發(fā)。熱衷于編寫優(yōu)良代碼以及研究如何提高開發(fā)效率,對面向?qū)ο箝_發(fā)與設(shè)計有較深層次理解,致力于使用OOP為復(fù)雜領(lǐng)域問題建模。喜歡鉆研并應(yīng)用一些出色的模式,以及支持軟件高效開發(fā)設(shè)計的流程和方法,是領(lǐng)域驅(qū)動開發(fā)(Domain-Driven
Design)和敏捷(Agile)開發(fā)方法的忠實粉絲。
個人博客:http://redhat.iteye.com/
書籍目錄
第一篇 模式介紹
第1章 談面向?qū)ο蠛湍J健?br /> 1.1 什么是對象
1.2 面向?qū)ο蟮暮锰帯?br /> 1.3 重用
1.4 模式簡史
1.5 什么是模式
1.6 學(xué)習(xí)設(shè)計模式的一些常見 問題
1.7 本章關(guān)鍵詞
第2章 第1個模式——模板 方法(template method) 模式
2.1 從回家過年說起
2.1.1 dry(don't repeat yourself)
2.1.2 變化+重復(fù),如何 維護
2.2 模板方法(template method) 模式
2.2.1 使用繼承
2.2.2 模板方法模式
2.3 引入回調(diào)(callback)
2.4 總結(jié)
2.5 本章關(guān)鍵詞
第二篇 創(chuàng)建對象
第3章 單例(singleton)模式
3.1 最簡單的單例
3.2 進階
3.2.1 延遲創(chuàng)建
3.2.2 線程安全
3.2.3 double-check locking
3.2.4 initialization on demand holder
3.2.5 singleton的序列化
3.3 總結(jié)
3.4 本章關(guān)鍵詞
第4章 工廠方法(factory method) 模式
4.1 工廠方法模式
4.1.1 類圖
4.1.2 創(chuàng)建數(shù)據(jù)庫連接對象
4.2 靜態(tài)工廠方法
4.3 總結(jié)
4.4 本章關(guān)鍵詞
第5章 原型(prototype)模式
5.1 原型模式
5.2 寄個快遞
5.3 實現(xiàn)
5.3.1 uml靜態(tài)類圖
5.3.2 代碼實現(xiàn)
5.4 深拷貝(deep copy)
5.5 總結(jié)
5.6 本章關(guān)鍵詞
第6章 控制反轉(zhuǎn)(ioc)
6.1 從創(chuàng)建對象談起
6.2 使用工廠方法模式的問題
6.3 inversion of control
?。刂品崔D(zhuǎn))
6.3.1 ioc和di
(dependency injection,
依賴注入)
6.3.2 service locator
(服務(wù)定位器)
6.3.3 dependency injection
6.4 總結(jié)
6.5 本章關(guān)鍵詞
第三篇 構(gòu)建復(fù)雜結(jié)構(gòu)
第7章 裝飾器(decorator)模式
7.1 記錄歷史修改
7.2 open-closed principle
?。ㄩ_放—封閉原則,ocp)
7.3 裝飾器(decorator)模式
7.3.1 類圖
7.3.2 實現(xiàn)
7.3.3 一點變化
7.3.4 如何使用
7.3.5 測試
7.4 裝飾器模式的優(yōu)缺點
7.5 總結(jié)
7.6 本章關(guān)鍵詞
第8章 代理(proxy)模式
8.1 代理(proxy)模式
8.1.1 類圖
8.1.2 訪問分布式對象
8.2 j2se動態(tài)代理
8.2.1 類和接口
8.2.2 調(diào)用原理
8.2.3 實現(xiàn)同步
8.2.4 總結(jié)
8.3 和裝飾器(decorator)模式的
比較
8.4 總結(jié)
8.5 本章關(guān)鍵詞
第9章 適配器(adapter)模式
9.1 打樁
9.2 其他適配器模式
9.2.1 類適配器
9.2.2 雙向適配器
9.3 測試
9.4 和代理(proxy)模式的比較
9.5 總結(jié)
9.6 本章關(guān)鍵詞
第10章 外觀(facade)模式
10.1 外觀(facade)模式
10.2 least knowledge principle
?。ㄗ钌僦R原則)
10.3 懶惰的老板請客
10.4 ejb里的外觀模式
10.5 總結(jié)
10.6 本章關(guān)鍵詞
第11章 組合(composite)模式
11.1 組合模式概述
11.1.1 類圖
11.1.2 使用組合(composite)
模式
11.1.3 測試
11.2 透明的組合模式
11.3 安全的組合模式vs透明
的組合模式
11.4 還需要注意什么
11.5 總結(jié)
11.6 本章關(guān)鍵詞
第四篇 行為模式
第12章 策略(strategy)模式
12.1 既要坐飛機又要坐大巴
12.2 封裝變化
12.3 策略模式
12.4 還需要繼承嗎
12.5 優(yōu)先使用合成而非繼承
12.6 總結(jié)
12.7 本章關(guān)鍵詞
第13章 狀態(tài)(state)模式
13.1 電子顏料板
13.2 switch-case實現(xiàn)
13.3 如何封裝變化
13.4 狀態(tài)模式
13.5 使用enum類型
13.6 與策略(strategy)模式的
比較
13.7 總結(jié)
13.8 本章關(guān)鍵詞
第14章 觀察者(observer)模式
14.1 股票價格變了多少
14.2 觀察者模式
14.2.1 如何實現(xiàn)
14.2.2 觀察者模式
14.2.3 java標(biāo)準(zhǔn)庫的觀察者
模式
14.3 總結(jié)
14.4 本章關(guān)鍵詞
第五篇 終點還是起點
第15章 面向切面的編程(aop)
15.1 記錄時間
15.2 aop(aspect-oriented
programming)
15.2.1 一些重要概念
15.2.2 oop實現(xiàn)橫切
15.2.3 aop實現(xiàn)技術(shù)
15.3 aop框架介紹
15.4 aop聯(lián)盟
?。╝op alliance)
15.5 使用aop編程的風(fēng)險
15.6 oop還是aop
15.7 總結(jié)
15.8 本章關(guān)鍵詞
第16章 面向?qū)ο箝_發(fā)
16.1 寫在面向?qū)ο笤O(shè)計之前
16.2 汲取知識
16.3 橫看成嶺側(cè)成峰
16.4 提煉模型
16.5 應(yīng)用設(shè)計模式
16.6 不能脫離實現(xiàn)技術(shù)
16.7 重構(gòu)
16.8 過度的開發(fā)(over-engineering)
16.9 總結(jié)
16.10 本章關(guān)鍵詞
第17章 結(jié)語
17.1 感悟
17.2 面向?qū)ο蟮拈_發(fā)范式
17.3 一些原則
17.4 寫在模式之后
17.5 本章關(guān)鍵詞
附錄 推薦閱讀資源
1 java語言相關(guān)學(xué)習(xí)圖書
2 j2ee技術(shù)相關(guān)圖書
3 面向?qū)ο笤O(shè)計相關(guān)圖書
4 給agile(敏捷)開發(fā)人員推薦的書籍
5 網(wǎng)站和論壇
參考文獻
章節(jié)摘錄
版權(quán)頁:插圖:對象易于理解和抽象:例如馬是一個類,一匹馬是一個對象,跑是馬的行為。正是由于這個特性,我們很容易把客觀世界反映到計算機里,極大地方便了編程設(shè)計。對象的粒度更大,模塊化程度也更高:與方法(函數(shù))和結(jié)構(gòu)體相比,對象是一組方法和數(shù)據(jù)的單元,所以粒度更大,這樣更方便控制和使用;而模塊化程度越高,也越容易抽象。更加容易重用代碼:只要使用繼承,就可以擁有父類的方法;只要創(chuàng)建這個對象,就可以使用它們的公有屬性和方法;只要使用多態(tài),就可以使用相同的邏輯處理不同類型的對象。具有可擴充性和開放性:OOP天生就具有擴展性和開放性。代碼易于閱讀:在閱讀代碼過程中,可以不去關(guān)注那些具體實現(xiàn)類,只要關(guān)注接口的約定即可,這樣更容易側(cè)重重點。
編輯推薦
《漫談設(shè)計模式:從面向?qū)ο箝_始》特色:從面向?qū)ο蟮难酃夥治鰡栴},并引入模式。給出J2EE實例,這些例子都是J2EE應(yīng)用中被經(jīng)常使用的。類比相近的模式,使讀者能夠掌握它們之間的區(qū)別與聯(lián)系。融入軟件開發(fā)設(shè)計原則,指導(dǎo)讀者在實踐中正確使用這些原則。如果您:反復(fù)研習(xí)面向?qū)ο缶幊?,然而并未開發(fā)出真正面向?qū)ο蟮南到y(tǒng)。應(yīng)用了面向?qū)ο竽J?,但并未享受到面向?qū)ο鬄檐浖淼暮锰帯δJ胶兔嫦驅(qū)ο蟮睦斫馔K碛诒砻?,不會使用面向?qū)ο蟮挠^點分析問題。那么您應(yīng)該閱讀《漫談設(shè)計模式:從面向?qū)ο箝_始》。沒有談神馬,也沒有講浮云,漫談設(shè)計模式,也漫談面向?qū)ο螅∣O),放棄過程式編程(FP/PP),玩轉(zhuǎn)面向?qū)ο缶幊蹋∣OP),輔以面向切面編程(AOP)不要if-else,不要重復(fù)自己(DRY)反轉(zhuǎn)控制(IOC),反轉(zhuǎn)依賴(DI),工單例模式,廠方法模式,飾器模式,原型模式,愛編程,也愛琢磨,愛鉆研,更愛分享,我是程序員,漫談設(shè)計模式背后的軟件設(shè)計思想。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載