出版時(shí)間:2010-11 出版社:清華大學(xué)出版社 作者:陳臣,王斌 頁(yè)數(shù):783
Tag標(biāo)簽:無(wú)
前言
創(chuàng)作背景軟件開(kāi)發(fā)越來(lái)越復(fù)雜,對(duì)軟件設(shè)計(jì)的要求也越來(lái)越高,而軟件設(shè)計(jì)和架構(gòu)的入門功夫就是深入理解和掌握設(shè)計(jì)模式。因此,設(shè)計(jì)模式的重要性不言而喻。很多朋友認(rèn)識(shí)到了設(shè)計(jì)模式的重要性,也看了很多的書(shū)籍和資料,但是,常聽(tīng)到這樣的抱怨:“設(shè)計(jì)模式的書(shū)我看了不少,覺(jué)得都看懂了,就是不知道在實(shí)際開(kāi)發(fā)中怎么運(yùn)用這些設(shè)計(jì)模式”,從而認(rèn)為設(shè)計(jì)模式是“看上去很美的花拳繡腿”。其實(shí)不然,造成這種情況的原因就在于:這些朋友對(duì)設(shè)計(jì)模式的理解不到位,自己感覺(jué)懂了,其實(shí)還差很遠(yuǎn),并沒(méi)有“真正”理解和掌握設(shè)計(jì)模式。市面上有不少設(shè)計(jì)模式方面的書(shū)籍,但對(duì)一般的學(xué)勻者而言,要么是太深,看得云里霧里的,比如GoF的著作《設(shè)計(jì)模式——可復(fù)用面向?qū)ο筌浖幕A(chǔ)》,很經(jīng)典,但是能吃透的人少;要么就是太淺,看了跟沒(méi)看差不多,也就是介紹一下每個(gè)設(shè)計(jì)模式,告訴你這就是某某設(shè)計(jì)模式,雖然語(yǔ)言很生動(dòng)但是實(shí)在沒(méi)貨,看完也不知道怎么運(yùn)用,就像是帶領(lǐng)大家摸到了設(shè)計(jì)模式的大門口,卻不告訴你怎么進(jìn)去一樣,其根本原因還是講得太淺,跟實(shí)際的應(yīng)用有太大的差距。對(duì)于所有想要真正理解和掌握設(shè)計(jì)模式的朋友,其實(shí)需要這樣的書(shū)籍:理論全面、準(zhǔn)確,難度適中;講解深入淺出、淺顯易懂;理論聯(lián)系實(shí)際應(yīng)用,對(duì)于晦澀的理論,應(yīng)有相應(yīng)的示例;示例最好來(lái)自實(shí)際應(yīng)用,而不是來(lái)自虛擬的場(chǎng)景;示例最好相對(duì)完整,而不是片段代碼,以利于學(xué)習(xí)和應(yīng)用。這也是本書(shū)寫(xiě)作的目的,希望能夠幫助更多的朋友早日修成設(shè)計(jì)模式的正果。經(jīng)過(guò)多年的準(zhǔn)備和一年的寫(xiě)作,以及各層次讀者的多輪試讀意見(jiàn)和建議匯總,最終成書(shū),我們可以這樣說(shuō):這是一本誠(chéng)意十足的書(shū),敬請(qǐng)您的評(píng)鑒!本書(shū)的試讀人員包括:從還沒(méi)有參加工作的學(xué)生,一直到工作7年的人員;職務(wù)覆蓋普通的程序員、項(xiàng)目經(jīng)理、高級(jí)系統(tǒng)架構(gòu)師、技術(shù)部的經(jīng)理:兩位作者本身從事開(kāi)發(fā)工作的年限,一位超過(guò)10年,一位超過(guò)5年。
內(nèi)容概要
本書(shū)完整覆蓋GoF講述的23個(gè)設(shè)計(jì)模式并加以細(xì)細(xì)研磨。初級(jí)內(nèi)容從基本講起,包括每個(gè)模式的定義、功能、思路、結(jié)構(gòu)、基本實(shí)現(xiàn)、運(yùn)行調(diào)用順序、基本應(yīng)用示例等,讓讀者能系統(tǒng)、完整、準(zhǔn)確地掌握每個(gè)模式,培養(yǎng)正確的“設(shè)計(jì)觀”;中高級(jí)內(nèi)容則深入探討如何理解這些模式,包括模式中蘊(yùn)涵什么樣的設(shè)計(jì)思想,模式的本質(zhì)是什么,模式如何結(jié)合實(shí)際應(yīng)用,模式的優(yōu)缺點(diǎn)以及與其他模式的關(guān)系等,以期讓讀者盡量去理解和掌握每個(gè)設(shè)計(jì)模式的精髓所在。
本書(shū)在內(nèi)容上深入、技術(shù)上實(shí)用、和實(shí)際開(kāi)發(fā)結(jié)合程度很高,書(shū)中大部分的示例程序都是從實(shí)際項(xiàng)目中簡(jiǎn)化而來(lái),因此很多例子都可以直接拿到實(shí)際項(xiàng)目中使用。如果你想要深入透徹地理解和掌握設(shè)計(jì)模式,并期望能真正把設(shè)計(jì)模式應(yīng)用到項(xiàng)目中去,那么這是你不可錯(cuò)過(guò)的一本好書(shū)。
本書(shū)難度為初級(jí)到中級(jí),適合于所有開(kāi)發(fā)人員、設(shè)計(jì)人員或者即將成為開(kāi)發(fā)人員的朋友。也可以作為高校學(xué)生深入學(xué)習(xí)設(shè)計(jì)模式的參考讀物。
作者簡(jiǎn)介
陳臣:十年Java/JavaEE開(kāi)發(fā)經(jīng)驗(yàn),高級(jí)系統(tǒng)架構(gòu)師,功力深厚,技術(shù)精湛,精通Java/JavaEE相關(guān)技術(shù)和多種開(kāi)源框架,尤其擅長(zhǎng)系統(tǒng)分析和架構(gòu)設(shè)計(jì)。從事過(guò)專業(yè)的中間件研發(fā),包括基于組件的Web頁(yè)面框架、基于WFMC的工作流中間件、類似于Hibernate的ORM框架等等;參與或主持了多個(gè)中大型的企業(yè)級(jí)應(yīng)用項(xiàng)目,擁有多年項(xiàng)目經(jīng)理、技術(shù)部經(jīng)理的管理經(jīng)驗(yàn)。個(gè)人博客:http://www.javass.cn/javapeixunxxyd/index.html
王斌:從事Java/JavaEE開(kāi)發(fā)五年,系統(tǒng)架構(gòu)師,精通Ejb、Struts、Spring、Hibernate、iBatis等框架技術(shù),擅長(zhǎng)設(shè)計(jì)模式和Eclipse插件開(kāi)發(fā)。作為架構(gòu)小組骨干,參與了國(guó)旅電子商務(wù)平臺(tái)、南王酒莊等多個(gè)項(xiàng)目的開(kāi)發(fā),開(kāi)發(fā)并維護(hù)有constance4j、myxstream、SimpleMapping等多個(gè)公司內(nèi)部開(kāi)源框架,深得多個(gè)項(xiàng)目組好評(píng)。
書(shū)籍目錄
第1章 設(shè)計(jì)模式基礎(chǔ)
1.1 設(shè)計(jì)模式是什么
1.1.1 什么是模式
1.1.2 設(shè)計(jì)模式的概念
1.1.3 設(shè)計(jì)模式的理解
1.1.4 設(shè)計(jì)模式的歷史
1.2 設(shè)計(jì)模式有什么
1.2.1 設(shè)計(jì)模式的組成
1.2.2 設(shè)計(jì)模式的分類
1.3 設(shè)計(jì)模式的學(xué)習(xí)
1.3.1 為什么要學(xué)習(xí)設(shè)計(jì)模式
1.3.2 學(xué)習(xí)設(shè)計(jì)模式的層次
1.3.3 如何學(xué)習(xí)設(shè)計(jì)模式
1.4 本書(shū)的組織方式
1.4.1 本書(shū)所講述的設(shè)計(jì)模式的提綱
1.4.2 每個(gè)模式的講述結(jié)構(gòu)
第2章 簡(jiǎn)單工廠
2.1 場(chǎng)景問(wèn)題
2.1.1 接口回顧
2.1.2 面向接口編程
2.1.3 不用模式的解決方案
2.1.4 有何問(wèn)題
2.2 解決方案
2.2.1 使用簡(jiǎn)單工廠來(lái)解決問(wèn)題
2.2.2 簡(jiǎn)單工廠的結(jié)構(gòu)和說(shuō)明
2.2.3 簡(jiǎn)單工廠示例代碼
2.2.4 使用簡(jiǎn)單工廠重寫(xiě)示例
2.3 模式講解
2.3.1 典型疑問(wèn)
2.3.2 認(rèn)識(shí)簡(jiǎn)單工廠
2.3.3 簡(jiǎn)單工廠中方法的寫(xiě)法
2.3.4 可配置的簡(jiǎn)單工廠
2.3.5 簡(jiǎn)單工廠的優(yōu)缺點(diǎn)
2.3.6 思考簡(jiǎn)單工廠
2.3.7 相關(guān)模式
第3章 外觀模式
3.1 場(chǎng)景問(wèn)題
3.1.1 生活中的示例
3.1.2 代碼生成的應(yīng)用
3.1.3 不用模式的解決方案
3.1.4 有何問(wèn)題
3.2 解決方案
3.2.1 使用外觀模式來(lái)解決問(wèn)題
3.2.2 外觀模式的結(jié)構(gòu)和說(shuō)明
3.2.3 外觀模式示例代碼
3.2.4 使用外觀模式重寫(xiě)示例
3.3 模式講解
3.3.1 認(rèn)識(shí)外觀模式
3.3.2 外觀模式的實(shí)現(xiàn)
3.3.3 外觀模式的優(yōu)缺點(diǎn)
3.3.4 思考外觀模式
3.3.5 相關(guān)模式
第4章 適配器模式(Adapter)
4.1 場(chǎng)景問(wèn)題
4.1.1 裝配電腦的例子
4.1.2 同時(shí)支持?jǐn)?shù)據(jù)庫(kù)和文件的日志管理
4.1.3 有何問(wèn)題
4.2 解決方案
4.2.1 使適配器模式來(lái)解決問(wèn)題
4.2.2 模式的結(jié)構(gòu)和說(shuō)明
4.2.3 適配器模式示例代碼
4.2.4 使用適配器模式來(lái)實(shí)現(xiàn)示例
4.3 模式講解
4.3.1 認(rèn)識(shí)適配器模式
4.3.2 適配器模式的實(shí)現(xiàn)
4.3.3 雙向適配器
4.3.4 對(duì)象適配器和類適配器
4.3.5 適配器模式的優(yōu)缺點(diǎn)
4.3.6 思考適配器模式
4.3.7 相關(guān)模式
第5章 單例模式(Singleton)
5.1 場(chǎng)景問(wèn)題
5.1.1 讀取配置文件的內(nèi)容
5.1.2 不用模式的解決方案
5.1.3 有何問(wèn)題
5.2 解決方案
5.2.1 使用單例模式來(lái)解決問(wèn)題
5.2.2 單例模式的結(jié)構(gòu)和說(shuō)明
5.2.3 單例模式示例代碼
5.2.4 使用單例模式重寫(xiě)示例
5.3 模式講解
5.3.1 認(rèn)識(shí)單例模式
5.3.2 懶漢式和餓漢式實(shí)現(xiàn)
5.3.3 延遲加載的思想
5.3.4 緩存的思想
5.3.5 Java中緩存的基本實(shí)現(xiàn)
5.3.6 利用緩存來(lái)實(shí)現(xiàn)單例模式
5.3.7 單例模式的優(yōu)缺點(diǎn)
5.3.8 在Java中一種更好的單例實(shí)現(xiàn)方式
5.3.9 單例和枚舉
5.3.10 思考單例模式
5.3.11 相關(guān)模式
第6章 工廠方法模式(Factory Method)
6.1 場(chǎng)景問(wèn)題
6.1.1 導(dǎo)出數(shù)據(jù)的應(yīng)用框架
6.1.2 框架的基礎(chǔ)知識(shí)
6.1.3 有何問(wèn)題
6.2 解決方案
6.2.1 使用工廠方法模式來(lái)解決問(wèn)題
6.2.2 工廠方法模式的結(jié)構(gòu)和說(shuō)明
6.2.3 工廠方法模式示例代碼
6.2.4 使用工廠方法模式來(lái)實(shí)現(xiàn)示例
6.3 模式講解
6.3.1 認(rèn)識(shí)工廠方法模式
6.3.2 工廠方法模式與IoC/DI
6.3.3 平行的類層次結(jié)構(gòu)
6.3.4 參數(shù)化工廠方法
6.3.5 工廠方法模式的優(yōu)缺點(diǎn)
6.3.6 思考工廠方法模式
6.3.7 相關(guān)模式
第7章 抽象工廠模式 (Abstract Factory)
7.1 場(chǎng)景問(wèn)題
7.1.1 選擇組裝電腦的配件
7.1.2 不用模式的解決方案
7.1.3 有何問(wèn)題
7.2 解決方案
7.2.1 使用抽象工廠模式來(lái)解決問(wèn)題
7.2.2 抽象工廠模式的結(jié)構(gòu)和說(shuō)明
7.2.3 抽象工廠模式示例代碼
7.2.4 使用抽象工廠模式重寫(xiě)示例
7.3 模 式 講 解
7.3.1 認(rèn)識(shí)抽象工廠模式
7.3.2 定義可擴(kuò)展的工廠
7.3.3 抽象工廠模式和DAO
7.3.4 抽象工廠模式的優(yōu)缺點(diǎn)
7.3.5 思考抽象工廠模式
7.3.6 相關(guān)模式
第8章 生成器模式(Builder)
8.1 場(chǎng)景問(wèn)題
8.1.1 繼續(xù)導(dǎo)出數(shù)據(jù)的應(yīng)用框架
8.1.2 不用模式的解決方案
8.1.3 有何問(wèn)題
8.2 解決方案
8.2.1 使用生成器模式來(lái)解決問(wèn)題
8.2.2 生成器模式的結(jié)構(gòu)和說(shuō)明
8.2.3 生成器模式示例代碼
8.2.4 使用生成器模式重寫(xiě)示例
8.3 模式講解
8.3.1 認(rèn)識(shí)生成器模式
8.3.2 生成器模式的實(shí)現(xiàn)
8.3.3 使用生成器模式構(gòu)建復(fù)雜對(duì)象
8.3.4 生成器模式的優(yōu)點(diǎn)
8.3.5 思考生成器模式
8.3.6 相關(guān)模式
第9章 原型模式(Prototype)
9.1 場(chǎng)景問(wèn)題
9.1.1 訂單處理系統(tǒng)
9.1.2 不用模式的解決方案
9.1.3 有何問(wèn)題
9.2 解決方案
9.2.1 使用原型模式來(lái)解決問(wèn)題
9.2.2 原形模式的結(jié)構(gòu)和說(shuō)明
9.2.3 原型模式示例代碼
9.2.4 使用原型模式重寫(xiě)示例
9.3 模式講解
9.3.1 認(rèn)識(shí)原型模式
9.3.2 Java中的克隆方法
9.3.3 淺度克隆和深度克隆
9.3.4 原型管理器
9.3.5 原型模式的優(yōu)缺點(diǎn)
9.3.6 思考原型模式
9.3.7 相關(guān)模式
第10章 中介者模式(Mediator)
10.1 場(chǎng)景問(wèn)題
10.1.1 如果沒(méi)有主板
10.1.2 有何問(wèn)題
10.1.3 使用電腦來(lái)看電影
10.2 解決方案
10.2.1 使用中介者模式來(lái)解決問(wèn)題
10.2.2 中介者模式的結(jié)構(gòu)和說(shuō)明
10.2.3 中介者模式示例代碼
10.2.4 使用中介者模式來(lái)實(shí)現(xiàn)示例
10.3 模式講解
10.3.1 認(rèn)識(shí)中介者模式
10.3.2 廣義中介者
10.3.3 中介者模式的優(yōu)缺點(diǎn)
10.3.4 思考中介者模式
10.3.5 相關(guān)模式
第11章 代 理 模 式(Proxy)
11.1 場(chǎng)景問(wèn)題
11.1.1 訪問(wèn)多條數(shù)據(jù)
11.1.2 不用模式的解決方案
11.1.3 有何問(wèn)題
11.2 解決方案
11.2.1 使用代理模式來(lái)解決問(wèn)題
11.2.2 代理模式的結(jié)構(gòu)和說(shuō)明
11.2.3 代理模式示例代碼
11.2.4 使用代理模式重寫(xiě)示例
11.3 模式講解
11.3.1 認(rèn)識(shí)代理模式
11.3.2 保護(hù)代理
11.3.3 Java中的代理
11.3.4 代理模式的特點(diǎn)
11.3.5 思考代理模式
11.3.6 相關(guān)模式
第12章 觀察者模式(Observer)
12.1 場(chǎng)景問(wèn)題
12.1.1 訂閱報(bào)紙的過(guò)程
12.1.2 訂閱報(bào)紙的問(wèn)題
12.2 解決方案
12.2.1 使用觀察者模式來(lái)解決問(wèn)題
12.2.2 觀察者模式的結(jié)構(gòu)和說(shuō)明
12.2.3 觀察者模式示例代碼
12.2.4 使用觀察者模式實(shí)現(xiàn)示例
12.3 模式講解
12.3.1 認(rèn)識(shí)觀察者模式
12.3.2 推模型和拉模型
12.3.3 Java中的觀察者模式
12.3.4 觀察者模式的優(yōu)缺點(diǎn)
12.3.5 思考觀察者模式
12.3.6 Swing中的觀察者模式
12.3.7 簡(jiǎn)單變形示例——區(qū)別對(duì)待觀察者
12.3.8 相關(guān)模式
第13章 命令模式(Command)
13.1 場(chǎng)景問(wèn)題
13.1.1 如何開(kāi)機(jī)
13.1.2 與我何干
13.1.3 有何問(wèn)題
13.2 解決方案
13.2.1 使用命令模式來(lái)解決問(wèn)題
13.2.2 命令模式的結(jié)構(gòu)和說(shuō)明
13.2.3 命令模式示例代碼
13.2.4 使用命令模式來(lái)實(shí)現(xiàn)示例
13.3 模式解
13.3.1 認(rèn)識(shí)命令模式
13.3.2 參數(shù)化配置
13.3.3 可撤銷的操作
13.3.4 宏命令
13.3.5 隊(duì)列請(qǐng)求
13.3.6 日志請(qǐng)求
13.3.7 命令模式的優(yōu)點(diǎn)
13.3.8 思考命令模式
13.3.9 退化的命令模式
13.3.10 相關(guān)模式
第14章 迭代器模式(Iterator)
14.1 場(chǎng)景問(wèn)題
14.1.1 工資表數(shù)據(jù)的整合
14.1.2 有何問(wèn)題
14.2 解決方案
14.2.1 使用迭代器模式來(lái)解決問(wèn)題
14.2.2 選化器模式的結(jié)構(gòu)和說(shuō)明
14.2.3 迭代器模式示例代碼
14.2.4 使用迭代器模式來(lái)實(shí)現(xiàn)示例
14.3 模式講解
14.3.1 認(rèn)識(shí)迭代器模式
14.3.2 使用Java的迭代器
14.3.3 帶迭代策略的迭代器
14.3.4 雙向迭代器
14.3.5 迭代器模式的優(yōu)點(diǎn)
14.3.6 思考迭代器模式
14.3.7 翻頁(yè)迭代
14.3.8 相關(guān)模式
第15章 組合模式(Composite)
15.1 場(chǎng)景問(wèn)題
15.1.1 商品類別樹(shù)
15.1.2 不用模式的解決方案
15.1.3 有何問(wèn)題
15.2 解決方案
15.2.1 使用組合模式來(lái)解決問(wèn)題
15.2.2 組合模式的結(jié)構(gòu)和說(shuō)明
15.2.3 組合模式示例代碼
15.2.4 使用組合模式重寫(xiě)示例
15.3 模式講解
15.3.1 認(rèn)識(shí)組合模式
15.3.2 安全性和透明性
15.3.3 父組件引用
15.3.4 環(huán)狀引用
15.3.5 組合模式的優(yōu)缺點(diǎn)
15.3.6 思考組合模式
15.3.7 相關(guān)模式
第16章 模板方法模式(Template Method)
16.1 場(chǎng)景問(wèn)題
16.1.1 登錄控制
16.1.2 不用模式的解決方案
16.1.3 有何問(wèn)題
16.2 解決方案
16.2.1 使用模板方法模式來(lái)解決問(wèn)題
16.2.2 模板方法模式的結(jié)構(gòu)和說(shuō)明
16.2.3 模板方法模式示例代碼
16.2.4 使用模板方法模式重寫(xiě)示例
16.3 模式講解
16.3.1 認(rèn)識(shí)模板方法模式
16.3.2 模板的寫(xiě)法
16.3.3 Java回調(diào)與模板方法模式
16.3.4 典型應(yīng)用:排序
16.3.5 實(shí)現(xiàn)通用的增刪改查
16.3.6 模板方法模式的優(yōu)缺點(diǎn)
16.3.7 思考模板方法模式
16.3.8 相關(guān)模式
第17章 策略模式(Strategy)
17.1 場(chǎng)景問(wèn)題
17.1.1 報(bào)價(jià)管理
17.1.2 不用模式的解決方案
17.1.3 有何問(wèn)題
17.2 解 決 方 案
17.2.1 使用策略模式來(lái)解決問(wèn)題
17.2.2 策略模式的結(jié)構(gòu)和說(shuō)明
17.2.3 策略模式示例代碼
17.2.4 使用策略模式重寫(xiě)示例
17.3 模式講解
17.3.1 認(rèn)識(shí)策略模式
17.3.2 Context和Strategy的關(guān)系
17.3.3 容錯(cuò)恢復(fù)機(jī)制
17.3.4 策略模式結(jié)合模板方法模式
17.3.5 策略模式的優(yōu)缺點(diǎn)
17.3.6 思考策略模式
17.3.7 相關(guān)模式
第18章 狀態(tài)模式(State)
18.1 場(chǎng)景問(wèn)題
18.1.1 實(shí)現(xiàn)在線投票
18.1.2 不用模式的解決方案
18.1.3 有何問(wèn)題
18.2 解決方案
18.2.1 使用狀態(tài)模式來(lái)解決問(wèn)題
18.2.2 狀態(tài)模式的結(jié)構(gòu)和說(shuō)明
18.2.3 狀態(tài)模式示例代碼
18.2.4 使用狀態(tài)模式重寫(xiě)示例
18.3 模式講解
18.3.1 認(rèn)識(shí)狀態(tài)模式
18.3.2 狀態(tài)的維護(hù)和轉(zhuǎn)換控制
18.3.3 使用數(shù)據(jù)庫(kù)來(lái)維護(hù)狀態(tài)
18.3.4 模擬工作流
18.3.5 狀態(tài)模式的優(yōu)缺點(diǎn)
18.3.6 思考狀態(tài)模式
18.3.7 相關(guān)模式
第19章 備忘錄模式(Memento)
19.1 場(chǎng)景問(wèn)題
19.1.1 開(kāi)發(fā)仿真系統(tǒng)
19.1.2 不用模式的解決方案
19.1.3 有何問(wèn)題
19.2 解決方案
19.2.1 使用備忘錄模式來(lái)解決問(wèn)題
19.2.2 備忘錄模式的結(jié)構(gòu)和說(shuō)明
19.2.3 備忘錄模式示例代碼
19.2.4 使用備忘錄模式重寫(xiě)示例
19.3 模式講解
19.3.1 認(rèn)識(shí)備忘錄模式
19.3.2 結(jié)合原型模式
19.3.3 離線存儲(chǔ)
19.3.4 再次實(shí)現(xiàn)可撤銷操作
19.3.5 備忘錄模式的優(yōu)缺點(diǎn)
19.3.6 思考備忘錄模式
19.3.7 相關(guān)模式
第20章 享元模式(Flyweight)
20.1 場(chǎng)景問(wèn)題
20.1.1 加入權(quán)限控制
20.1.2 不使用模式的解決方案
20.1.3 有何問(wèn)題
20.2 解決方案
20.2.1 使用享元模式來(lái)解決問(wèn)題
20.2.2 享元模式的結(jié)構(gòu)和說(shuō)明
20.2.3 享元模式示例代碼
20.2.4 使用享元模式重寫(xiě)示例
20.3 模式講解
20.3.1 認(rèn)識(shí)享元模式
20.3.2 不需要共享的享元實(shí)現(xiàn)
20.3.3 對(duì)享元對(duì)象的管理
20.3.4 享元模式的優(yōu)缺點(diǎn)
20.3.5 思考享元模式
20.3.6 相關(guān)模式
第21章 解釋器模式(Interpreter)
21.1 場(chǎng)景問(wèn)題
21.1.1 讀取配置文件
21.1.2 不用模式的解決方案
21.1.3 有何問(wèn)題
21.2 解決方案
21.2.1 使用解釋器模式來(lái)解決問(wèn)題
21.2.2 解釋器模式的結(jié)構(gòu)和說(shuō)明
21.2.3 解釋器模式示例代碼
21.2.4 使用解釋器模式重寫(xiě)示例
21.3 模式講解
21.3.1 認(rèn)識(shí)解釋器模式
21.3.2 讀取多個(gè)元素或?qū)傩缘闹?br /> 21.3.3 解析器
21.3.4 解釋器模式的優(yōu)缺點(diǎn)
21.3.5 思考解釋器模式
21.3.6 相關(guān)模式
第22章 裝飾模式(Decorator)
22.1 場(chǎng)景問(wèn)題
22.1.1 復(fù)雜的獎(jiǎng)金計(jì)算
22.1.2 簡(jiǎn)化后的獎(jiǎng)金計(jì)算體系
22.1.3 不用模式的解決方案
22.1.4 有何問(wèn)題
22.2 解決方案
22.2.1 使用裝飾模式來(lái)解決問(wèn)題
22.2.2 裝飾模式的結(jié)構(gòu)和說(shuō)明
22.2.3 裝飾模式示例代碼
22.2.4 使用裝飾模式重寫(xiě)示例
22.3 模式講解
22.3.1 認(rèn)識(shí)裝飾模式
22.3.2 Java中的裝飾模式應(yīng)用
22.3.3 裝飾模式和AOP
22.3.4 裝飾模式的優(yōu)缺點(diǎn)
22.3.5 思考裝飾模式
22.3.6 相關(guān)模式
第23章 職責(zé)鏈模式(Chain of Responsibility)
23.1 場(chǎng)景問(wèn)題
23.1.1 申請(qǐng)聚餐費(fèi)用
23.1.2 不用模式的解決方案
23.1.3 有何問(wèn)題
23.2 解決方案
23.2.1 使用職責(zé)鏈模式來(lái)解決問(wèn)題
23.2.2 職責(zé)鏈模式的結(jié)構(gòu)和說(shuō)明
23.2.3 職責(zé)鏈模式示例代碼
23.2.4 使用職責(zé)鏈模式重寫(xiě)示例
23.3 模式講解
23.3.1 認(rèn)識(shí)職責(zé)鏈模式
23.3.2 處理多種請(qǐng)求
23.3.3 功能鏈
23.3.4 職責(zé)鏈模式的優(yōu)缺點(diǎn)
23.3.5 思考職責(zé)鏈模式
23.3.6 相關(guān)模式
第24章 橋接模式(Bridge)
24.1 場(chǎng)景問(wèn)
24.1.1 發(fā)送提示消息
24.1.2 不用模式的解決方案
24.1.3 有何問(wèn)題
24.2 解決方案
24.2.1 使用橋接模式來(lái)解決問(wèn)題
24.2.2 橋接模式的結(jié)構(gòu)和說(shuō)明
24.2.3 橋接模式示例代碼
24.2.4 使用橋接模式重寫(xiě)示例
24.3 模式講解
24.3.1 認(rèn)識(shí)橋接模式
24.3.2 誰(shuí)來(lái)橋接
24.3.3 典型例子——JDBC
24.3.4 廣義橋接——Java中無(wú)處不橋接
24.3.5 橋接模式的優(yōu)缺點(diǎn)
24.3.6 思考橋接模式
24.3.7 相關(guān)模式
第25章 訪問(wèn)者模式(Visitor)
25.1 場(chǎng)景問(wèn)題
25.1.1 擴(kuò)展客戶管理的功能
25.1.2 不用模式的解決方案
25.1.3 有何問(wèn)題
25.2 解決方案
25.2.1 使用訪問(wèn)者模式來(lái)解決問(wèn)題
25.2.2 訪問(wèn)者模式的結(jié)構(gòu)和說(shuō)明
25.2.3 訪問(wèn)者模式示例代碼
25.2.4 使用訪問(wèn)者模式重寫(xiě)示例
25.3 模式講解
25.3.1 認(rèn)識(shí)訪問(wèn)者模式
25.3.2 操作組合對(duì)象結(jié)構(gòu)
25.3.3 誰(shuí)負(fù)責(zé)遍歷所有元素對(duì)象
25.3.4 訪問(wèn)者模式的優(yōu)缺點(diǎn)
25.3.5 思考訪問(wèn)者模式
25.3.6 相關(guān)模式
附錄A 常見(jiàn)面向?qū)ο笤O(shè)計(jì)原則
A.1 設(shè)計(jì)模式和設(shè)計(jì)原則
A.1.1 設(shè)計(jì)模式和設(shè)計(jì)原則的關(guān)系
A.1.2 為何不重點(diǎn)講解設(shè)計(jì)原則
A.2 常見(jiàn)的面向?qū)ο笤O(shè)計(jì)原則
A.2.1 單一職責(zé)原則SRP(Single Responsibility Principle)
A.2.2 開(kāi)放-關(guān)閉原則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 最少知識(shí)原則LKP(Least Knowledge Principle)
A.2.7 其他原則
附錄B UML簡(jiǎn)介
B.1 UML基礎(chǔ)
B.1.1 UML是什么
B.1.2 UML歷史
B.1.3 UML能干什么
B.1.4 UML有什么
B.2 類圖
B.2.1 類圖的概念
B.2.2 類圖的基本表達(dá)
B.2.3 抽象類和接口
B.2.4 關(guān)系
B.3 順序圖
B.3.1 順序圖的概念
B.3.2 順序圖的基本表達(dá)
臨別贈(zèng)言
不是結(jié)束而是新的開(kāi)始
你該怎么做
參考文獻(xiàn)
章節(jié)摘錄
插圖:適配器通過(guò)轉(zhuǎn)換調(diào)用已有的實(shí)現(xiàn),從而能把已有的實(shí)現(xiàn)匹配成需要的接口,使之能滿足客戶端的需要。也就是說(shuō)轉(zhuǎn)換匹配是手段,而復(fù)用已有的功能才是目的。在進(jìn)行轉(zhuǎn)換匹配的過(guò)程中,適配器還可以在轉(zhuǎn)換調(diào)用的前后實(shí)現(xiàn)一些功能處理,也就是實(shí)現(xiàn)智能的適配。2.何時(shí)選用適配器模式建議在以下情況中選用適配器模式。如果你想要使用一個(gè)已經(jīng)存在的類,但是它的接口不符合你的需求,這種情況可以使用適配器模式,來(lái)把已有的實(shí)現(xiàn)轉(zhuǎn)換成你需要的接口。如果你想創(chuàng)建一個(gè)可以復(fù)用的類,這個(gè)類可能和一些不兼容的類一起工作,這種情況可以使用適配器模式,到時(shí)候需要什么就適配什么。如果你想使用一些已經(jīng)存在的子類,但是不可能對(duì)每一個(gè)子類都進(jìn)行適配,這種情況可以選用對(duì)象適配器,直接適配這些子類的父類就可以了。4.3.7 相關(guān)模式適配器模式與橋接模式其實(shí)這兩個(gè)模式除了結(jié)構(gòu)略為相似外,功能上完全不同。適配器模式是把兩個(gè)或者多個(gè)接口的功能進(jìn)行轉(zhuǎn)換匹配;而橋接模式是讓接口和實(shí)現(xiàn)部分相分離,以便它們可以相對(duì)獨(dú)立地變化。
媒體關(guān)注與評(píng)論
高超的大師和蹩腳專家的區(qū)別就在于,前者能把復(fù)雜的東西講簡(jiǎn)單,后者恰恰相反,支持樓主! ——4樓rails201020100-07-19引用 比國(guó)內(nèi)某些所謂的大師寫(xiě)的設(shè)計(jì)模式書(shū)好多了,比國(guó)外的大師寫(xiě)的書(shū)更容易讓人懂,頂博主。 ——13樓dayday-up12010-08-04引用 樓主對(duì)廣義橋接模式的闡述,對(duì)我而言,只能用震撼來(lái)形容,從來(lái)就沒(méi)有這樣想過(guò),但經(jīng)樓主講出來(lái),確實(shí)又是這樣,樓主對(duì)模式的理解實(shí)在是太深刻了,超贊!好博文!看到第二篇的時(shí)候,基本上就已經(jīng)說(shuō)到策略模式的核心點(diǎn)上了。能從核心擴(kuò)展到相關(guān)應(yīng)用,擴(kuò)展到與其他模式的相同與不同,也足以說(shuō)明了樓主對(duì)模式的深刻理解!呵呵,繼續(xù)期待其他模式。 ——4樓po-5342010-09-06引用 對(duì)樓主的佩服真是如滔滔江水,能把設(shè)計(jì)模式寫(xiě)得這么深入淺出、深度廣度兼具,在我看過(guò)的資料里面,以絕對(duì)優(yōu)勢(shì)排第一,比市面上很多寫(xiě)模式的書(shū)都要好很多。 ——8樓Superheizai2010-08-20引用 好強(qiáng)悍的博主,對(duì)模式的理解真的是深入,另外那個(gè)對(duì)流式輸出的分析,看java源代碼來(lái)的吧,真是透徹。 ——18樓leveret2010-08-20引用 由criblogs追到這里,樓主才是真正的人才,能把模式說(shuō)的這么清楚的人的確不多! 確實(shí)不像現(xiàn)在很多都是淺嘗輒止的設(shè)計(jì)模式的韋,研磨系列,更深入,更具體!估計(jì)樓主這么長(zhǎng)時(shí)間沒(méi)更新,肯定受出版社邀約了吧,呵呵。 ——6樓superheizai2010-09-06引用 很符合中國(guó)人的理解方式,所以覺(jué)得很親近,看起來(lái)舒服很多! ——21樓bugrluke2010-09-28引用 膜拜大師的作品,頭些天粗略的看了一下《大話設(shè)計(jì)模式》和《重構(gòu)》,希望10年后有大師今天的成就。支持出書(shū)! ——12樓EnterLee2010-08-11引用 樓主對(duì)模式的理解之深刻,表述之深入淺出,引人入勝,實(shí)在是讓人佩服。 ——7樓dakaiopen2010-09-02引用
編輯推薦
《研磨設(shè)計(jì)模式》:一本值得反復(fù)研讀的書(shū)……
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版