研磨設計模式

出版時間:2010-11  出版社:清華大學出版社  作者:陳臣,王斌  頁數(shù):783  
Tag標簽:無  

前言

創(chuàng)作背景軟件開發(fā)越來越復雜,對軟件設計的要求也越來越高,而軟件設計和架構(gòu)的入門功夫就是深入理解和掌握設計模式。因此,設計模式的重要性不言而喻。很多朋友認識到了設計模式的重要性,也看了很多的書籍和資料,但是,常聽到這樣的抱怨:“設計模式的書我看了不少,覺得都看懂了,就是不知道在實際開發(fā)中怎么運用這些設計模式”,從而認為設計模式是“看上去很美的花拳繡腿”。其實不然,造成這種情況的原因就在于:這些朋友對設計模式的理解不到位,自己感覺懂了,其實還差很遠,并沒有“真正”理解和掌握設計模式。市面上有不少設計模式方面的書籍,但對一般的學勻者而言,要么是太深,看得云里霧里的,比如GoF的著作《設計模式——可復用面向?qū)ο筌浖幕A》,很經(jīng)典,但是能吃透的人少;要么就是太淺,看了跟沒看差不多,也就是介紹一下每個設計模式,告訴你這就是某某設計模式,雖然語言很生動但是實在沒貨,看完也不知道怎么運用,就像是帶領大家摸到了設計模式的大門口,卻不告訴你怎么進去一樣,其根本原因還是講得太淺,跟實際的應用有太大的差距。對于所有想要真正理解和掌握設計模式的朋友,其實需要這樣的書籍:理論全面、準確,難度適中;講解深入淺出、淺顯易懂;理論聯(lián)系實際應用,對于晦澀的理論,應有相應的示例;示例最好來自實際應用,而不是來自虛擬的場景;示例最好相對完整,而不是片段代碼,以利于學習和應用。這也是本書寫作的目的,希望能夠幫助更多的朋友早日修成設計模式的正果。經(jīng)過多年的準備和一年的寫作,以及各層次讀者的多輪試讀意見和建議匯總,最終成書,我們可以這樣說:這是一本誠意十足的書,敬請您的評鑒!本書的試讀人員包括:從還沒有參加工作的學生,一直到工作7年的人員;職務覆蓋普通的程序員、項目經(jīng)理、高級系統(tǒng)架構(gòu)師、技術(shù)部的經(jīng)理:兩位作者本身從事開發(fā)工作的年限,一位超過10年,一位超過5年。

內(nèi)容概要

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

作者簡介

陳臣:十年Java/JavaEE開發(fā)經(jīng)驗,高級系統(tǒng)架構(gòu)師,功力深厚,技術(shù)精湛,精通Java/JavaEE相關(guān)技術(shù)和多種開源框架,尤其擅長系統(tǒng)分析和架構(gòu)設計。從事過專業(yè)的中間件研發(fā),包括基于組件的Web頁面框架、基于WFMC的工作流中間件、類似于Hibernate的ORM框架等等;參與或主持了多個中大型的企業(yè)級應用項目,擁有多年項目經(jīng)理、技術(shù)部經(jīng)理的管理經(jīng)驗。個人博客:http://www.javass.cn/javapeixunxxyd/index.html
  王斌:從事Java/JavaEE開發(fā)五年,系統(tǒng)架構(gòu)師,精通Ejb、Struts、Spring、Hibernate、iBatis等框架技術(shù),擅長設計模式和Eclipse插件開發(fā)。作為架構(gòu)小組骨干,參與了國旅電子商務平臺、南王酒莊等多個項目的開發(fā),開發(fā)并維護有constance4j、myxstream、SimpleMapping等多個公司內(nèi)部開源框架,深得多個項目組好評。

書籍目錄

第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 每個模式的講述結(jié)構(gòu)
第2章 簡單工廠
 2.1 場景問題
  2.1.1 接口回顧
  2.1.2 面向接口編程
  2.1.3 不用模式的解決方案
  2.1.4 有何問題
 2.2 解決方案
  2.2.1 使用簡單工廠來解決問題
  2.2.2 簡單工廠的結(jié)構(gòu)和說明
  2.2.3 簡單工廠示例代碼
  2.2.4 使用簡單工廠重寫示例
 2.3 模式講解
  2.3.1 典型疑問
  2.3.2 認識簡單工廠
  2.3.3 簡單工廠中方法的寫法
  2.3.4 可配置的簡單工廠
  2.3.5 簡單工廠的優(yōu)缺點
  2.3.6 思考簡單工廠
  2.3.7 相關(guān)模式
第3章 外觀模式
 3.1 場景問題
  3.1.1 生活中的示例
  3.1.2 代碼生成的應用
  3.1.3 不用模式的解決方案
  3.1.4 有何問題
 3.2 解決方案
  3.2.1 使用外觀模式來解決問題
  3.2.2 外觀模式的結(jié)構(gòu)和說明
  3.2.3 外觀模式示例代碼
  3.2.4 使用外觀模式重寫示例
 3.3 模式講解
  3.3.1 認識外觀模式
  3.3.2 外觀模式的實現(xiàn)
  3.3.3 外觀模式的優(yōu)缺點
  3.3.4 思考外觀模式
  3.3.5 相關(guān)模式
第4章 適配器模式(Adapter)
 4.1 場景問題
  4.1.1 裝配電腦的例子
  4.1.2 同時支持數(shù)據(jù)庫和文件的日志管理
  4.1.3 有何問題
 4.2 解決方案
  4.2.1 使適配器模式來解決問題
  4.2.2 模式的結(jié)構(gòu)和說明
  4.2.3 適配器模式示例代碼
  4.2.4 使用適配器模式來實現(xiàn)示例
 4.3 模式講解
  4.3.1 認識適配器模式
  4.3.2 適配器模式的實現(xiàn)
  4.3.3 雙向適配器
  4.3.4 對象適配器和類適配器
  4.3.5 適配器模式的優(yōu)缺點
  4.3.6 思考適配器模式
  4.3.7 相關(guān)模式
第5章 單例模式(Singleton)
 5.1 場景問題
  5.1.1 讀取配置文件的內(nèi)容
  5.1.2 不用模式的解決方案
  5.1.3 有何問題
 5.2 解決方案
  5.2.1 使用單例模式來解決問題
  5.2.2 單例模式的結(jié)構(gòu)和說明
  5.2.3 單例模式示例代碼
  5.2.4 使用單例模式重寫示例
 5.3 模式講解
  5.3.1 認識單例模式
  5.3.2 懶漢式和餓漢式實現(xiàn)
  5.3.3 延遲加載的思想
  5.3.4 緩存的思想
  5.3.5 Java中緩存的基本實現(xiàn)
  5.3.6 利用緩存來實現(xiàn)單例模式
  5.3.7 單例模式的優(yōu)缺點
  5.3.8 在Java中一種更好的單例實現(xiàn)方式
  5.3.9 單例和枚舉
  5.3.10 思考單例模式
  5.3.11 相關(guān)模式
第6章 工廠方法模式(Factory Method)
 6.1 場景問題
  6.1.1 導出數(shù)據(jù)的應用框架
  6.1.2 框架的基礎知識
  6.1.3 有何問題
 6.2 解決方案
  6.2.1 使用工廠方法模式來解決問題
  6.2.2 工廠方法模式的結(jié)構(gòu)和說明
  6.2.3 工廠方法模式示例代碼
  6.2.4 使用工廠方法模式來實現(xiàn)示例
 6.3 模式講解
  6.3.1 認識工廠方法模式
  6.3.2 工廠方法模式與IoC/DI
  6.3.3 平行的類層次結(jié)構(gòu)
  6.3.4 參數(shù)化工廠方法
  6.3.5 工廠方法模式的優(yōu)缺點
  6.3.6 思考工廠方法模式
  6.3.7 相關(guān)模式
第7章 抽象工廠模式 (Abstract Factory)
 7.1 場景問題
  7.1.1 選擇組裝電腦的配件
  7.1.2 不用模式的解決方案
  7.1.3 有何問題
 7.2 解決方案
  7.2.1 使用抽象工廠模式來解決問題
  7.2.2 抽象工廠模式的結(jié)構(gòu)和說明
  7.2.3 抽象工廠模式示例代碼
  7.2.4 使用抽象工廠模式重寫示例
 7.3 模 式 講 解
  7.3.1 認識抽象工廠模式
  7.3.2 定義可擴展的工廠
  7.3.3 抽象工廠模式和DAO
  7.3.4 抽象工廠模式的優(yōu)缺點
  7.3.5 思考抽象工廠模式
  7.3.6 相關(guān)模式
第8章 生成器模式(Builder)
 8.1 場景問題
  8.1.1 繼續(xù)導出數(shù)據(jù)的應用框架
  8.1.2 不用模式的解決方案
  8.1.3 有何問題
 8.2 解決方案
  8.2.1 使用生成器模式來解決問題
  8.2.2 生成器模式的結(jié)構(gòu)和說明
  8.2.3 生成器模式示例代碼
  8.2.4 使用生成器模式重寫示例
 8.3 模式講解
  8.3.1 認識生成器模式
  8.3.2 生成器模式的實現(xiàn)
  8.3.3 使用生成器模式構(gòu)建復雜對象
  8.3.4 生成器模式的優(yōu)點
  8.3.5 思考生成器模式
  8.3.6 相關(guān)模式
第9章 原型模式(Prototype)
 9.1 場景問題
  9.1.1 訂單處理系統(tǒng)
  9.1.2 不用模式的解決方案
  9.1.3 有何問題
 9.2 解決方案
  9.2.1 使用原型模式來解決問題
  9.2.2 原形模式的結(jié)構(gòu)和說明
  9.2.3 原型模式示例代碼
  9.2.4 使用原型模式重寫示例
 9.3 模式講解
  9.3.1 認識原型模式
  9.3.2 Java中的克隆方法
  9.3.3 淺度克隆和深度克隆
  9.3.4 原型管理器
  9.3.5 原型模式的優(yōu)缺點
  9.3.6 思考原型模式
  9.3.7 相關(guān)模式
第10章 中介者模式(Mediator)
 10.1 場景問題
  10.1.1 如果沒有主板
  10.1.2 有何問題
  10.1.3 使用電腦來看電影
 10.2 解決方案
  10.2.1 使用中介者模式來解決問題
  10.2.2 中介者模式的結(jié)構(gòu)和說明
  10.2.3 中介者模式示例代碼
  10.2.4 使用中介者模式來實現(xiàn)示例
 10.3 模式講解
  10.3.1 認識中介者模式
  10.3.2 廣義中介者
  10.3.3 中介者模式的優(yōu)缺點
  10.3.4 思考中介者模式
  10.3.5 相關(guān)模式
第11章 代 理 模 式(Proxy)
 11.1 場景問題
  11.1.1 訪問多條數(shù)據(jù)
  11.1.2 不用模式的解決方案
  11.1.3 有何問題
 11.2 解決方案
  11.2.1 使用代理模式來解決問題
  11.2.2 代理模式的結(jié)構(gòu)和說明
  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 相關(guān)模式
第12章 觀察者模式(Observer)
 12.1 場景問題
  12.1.1 訂閱報紙的過程
  12.1.2 訂閱報紙的問題
 12.2 解決方案
  12.2.1 使用觀察者模式來解決問題
  12.2.2 觀察者模式的結(jié)構(gòu)和說明
  12.2.3 觀察者模式示例代碼
  12.2.4 使用觀察者模式實現(xiàn)示例
 12.3 模式講解
  12.3.1 認識觀察者模式
  12.3.2 推模型和拉模型
  12.3.3 Java中的觀察者模式
  12.3.4 觀察者模式的優(yōu)缺點
  12.3.5 思考觀察者模式
  12.3.6 Swing中的觀察者模式
  12.3.7 簡單變形示例——區(qū)別對待觀察者
  12.3.8 相關(guān)模式
第13章 命令模式(Command)
 13.1 場景問題
  13.1.1 如何開機
  13.1.2 與我何干
  13.1.3 有何問題
 13.2 解決方案
  13.2.1 使用命令模式來解決問題
  13.2.2 命令模式的結(jié)構(gòu)和說明
  13.2.3 命令模式示例代碼
  13.2.4 使用命令模式來實現(xiàn)示例
 13.3 模式解
  13.3.1 認識命令模式
  13.3.2 參數(shù)化配置
  13.3.3 可撤銷的操作
  13.3.4 宏命令
  13.3.5 隊列請求
  13.3.6 日志請求
  13.3.7 命令模式的優(yōu)點
  13.3.8 思考命令模式
  13.3.9 退化的命令模式
  13.3.10 相關(guān)模式
第14章 迭代器模式(Iterator)
 14.1 場景問題
  14.1.1 工資表數(shù)據(jù)的整合
  14.1.2 有何問題
 14.2 解決方案
  14.2.1 使用迭代器模式來解決問題
  14.2.2 選化器模式的結(jié)構(gòu)和說明
  14.2.3 迭代器模式示例代碼
  14.2.4 使用迭代器模式來實現(xiàn)示例
 14.3 模式講解
  14.3.1 認識迭代器模式
  14.3.2 使用Java的迭代器
  14.3.3 帶迭代策略的迭代器
  14.3.4 雙向迭代器
  14.3.5 迭代器模式的優(yōu)點
  14.3.6 思考迭代器模式
  14.3.7 翻頁迭代
  14.3.8 相關(guān)模式
第15章 組合模式(Composite)
 15.1 場景問題
  15.1.1 商品類別樹
  15.1.2 不用模式的解決方案
  15.1.3 有何問題
 15.2 解決方案
  15.2.1 使用組合模式來解決問題
  15.2.2 組合模式的結(jié)構(gòu)和說明
  15.2.3 組合模式示例代碼
  15.2.4 使用組合模式重寫示例
 15.3 模式講解
  15.3.1 認識組合模式
  15.3.2 安全性和透明性
  15.3.3 父組件引用
  15.3.4 環(huán)狀引用
  15.3.5 組合模式的優(yōu)缺點
  15.3.6 思考組合模式
  15.3.7 相關(guān)模式
第16章 模板方法模式(Template Method)
 16.1 場景問題
  16.1.1 登錄控制
  16.1.2 不用模式的解決方案
  16.1.3 有何問題
 16.2 解決方案
  16.2.1 使用模板方法模式來解決問題
  16.2.2 模板方法模式的結(jié)構(gòu)和說明
  16.2.3 模板方法模式示例代碼
  16.2.4 使用模板方法模式重寫示例
 16.3 模式講解
  16.3.1 認識模板方法模式
  16.3.2 模板的寫法
  16.3.3 Java回調(diào)與模板方法模式
  16.3.4 典型應用:排序
  16.3.5 實現(xiàn)通用的增刪改查
  16.3.6 模板方法模式的優(yōu)缺點
  16.3.7 思考模板方法模式
  16.3.8 相關(guān)模式
第17章 策略模式(Strategy)
 17.1 場景問題
  17.1.1 報價管理
  17.1.2 不用模式的解決方案
  17.1.3 有何問題
 17.2 解 決 方 案
  17.2.1 使用策略模式來解決問題
  17.2.2 策略模式的結(jié)構(gòu)和說明
  17.2.3 策略模式示例代碼
  17.2.4 使用策略模式重寫示例
 17.3 模式講解
  17.3.1 認識策略模式
  17.3.2 Context和Strategy的關(guān)系
  17.3.3 容錯恢復機制
  17.3.4 策略模式結(jié)合模板方法模式
  17.3.5 策略模式的優(yōu)缺點
  17.3.6 思考策略模式
  17.3.7 相關(guān)模式
第18章 狀態(tài)模式(State)
 18.1 場景問題
  18.1.1 實現(xiàn)在線投票
  18.1.2 不用模式的解決方案
  18.1.3 有何問題
 18.2 解決方案
  18.2.1 使用狀態(tài)模式來解決問題
  18.2.2 狀態(tài)模式的結(jié)構(gòu)和說明
  18.2.3 狀態(tài)模式示例代碼
  18.2.4 使用狀態(tài)模式重寫示例
 18.3 模式講解
  18.3.1 認識狀態(tài)模式
  18.3.2 狀態(tài)的維護和轉(zhuǎn)換控制
  18.3.3 使用數(shù)據(jù)庫來維護狀態(tài)
  18.3.4 模擬工作流
  18.3.5 狀態(tài)模式的優(yōu)缺點
  18.3.6 思考狀態(tài)模式
  18.3.7 相關(guān)模式
第19章 備忘錄模式(Memento)
 19.1 場景問題
  19.1.1 開發(fā)仿真系統(tǒng)
  19.1.2 不用模式的解決方案
  19.1.3 有何問題
 19.2 解決方案
  19.2.1 使用備忘錄模式來解決問題
  19.2.2 備忘錄模式的結(jié)構(gòu)和說明
  19.2.3 備忘錄模式示例代碼
  19.2.4 使用備忘錄模式重寫示例
 19.3 模式講解
  19.3.1 認識備忘錄模式
  19.3.2 結(jié)合原型模式
  19.3.3 離線存儲
  19.3.4 再次實現(xiàn)可撤銷操作
  19.3.5 備忘錄模式的優(yōu)缺點
  19.3.6 思考備忘錄模式
  19.3.7 相關(guān)模式
第20章 享元模式(Flyweight)
 20.1 場景問題
  20.1.1 加入權(quán)限控制
  20.1.2 不使用模式的解決方案
  20.1.3 有何問題
 20.2 解決方案
  20.2.1 使用享元模式來解決問題
  20.2.2 享元模式的結(jié)構(gòu)和說明
  20.2.3 享元模式示例代碼
  20.2.4 使用享元模式重寫示例
 20.3 模式講解
  20.3.1 認識享元模式
  20.3.2 不需要共享的享元實現(xiàn)
  20.3.3 對享元對象的管理
  20.3.4 享元模式的優(yōu)缺點
  20.3.5 思考享元模式
  20.3.6 相關(guān)模式
第21章 解釋器模式(Interpreter)
 21.1 場景問題
  21.1.1 讀取配置文件
  21.1.2 不用模式的解決方案
  21.1.3 有何問題
 21.2 解決方案
  21.2.1 使用解釋器模式來解決問題
  21.2.2 解釋器模式的結(jié)構(gòu)和說明
  21.2.3 解釋器模式示例代碼
  21.2.4 使用解釋器模式重寫示例
 21.3 模式講解
  21.3.1 認識解釋器模式
  21.3.2 讀取多個元素或?qū)傩缘闹?br />  21.3.3 解析器
  21.3.4 解釋器模式的優(yōu)缺點
  21.3.5 思考解釋器模式
  21.3.6 相關(guān)模式
第22章 裝飾模式(Decorator)
 22.1 場景問題
  22.1.1 復雜的獎金計算
  22.1.2 簡化后的獎金計算體系
  22.1.3 不用模式的解決方案
  22.1.4 有何問題
 22.2 解決方案
  22.2.1 使用裝飾模式來解決問題
  22.2.2 裝飾模式的結(jié)構(gòu)和說明
  22.2.3 裝飾模式示例代碼
  22.2.4 使用裝飾模式重寫示例
 22.3 模式講解
  22.3.1 認識裝飾模式
  22.3.2 Java中的裝飾模式應用
  22.3.3 裝飾模式和AOP
  22.3.4 裝飾模式的優(yōu)缺點
  22.3.5 思考裝飾模式
  22.3.6 相關(guān)模式
第23章 職責鏈模式(Chain of Responsibility)
 23.1 場景問題
  23.1.1 申請聚餐費用
  23.1.2 不用模式的解決方案
  23.1.3 有何問題
 23.2 解決方案
  23.2.1 使用職責鏈模式來解決問題
  23.2.2 職責鏈模式的結(jié)構(gòu)和說明
  23.2.3 職責鏈模式示例代碼
  23.2.4 使用職責鏈模式重寫示例
 23.3 模式講解
  23.3.1 認識職責鏈模式
  23.3.2 處理多種請求
  23.3.3 功能鏈
  23.3.4 職責鏈模式的優(yōu)缺點
  23.3.5 思考職責鏈模式
  23.3.6 相關(guān)模式
第24章 橋接模式(Bridge)
 24.1 場景問
  24.1.1 發(fā)送提示消息
  24.1.2 不用模式的解決方案
  24.1.3 有何問題
 24.2 解決方案
  24.2.1 使用橋接模式來解決問題
  24.2.2 橋接模式的結(jié)構(gòu)和說明
  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 橋接模式的優(yōu)缺點
  24.3.6 思考橋接模式
  24.3.7 相關(guān)模式
第25章 訪問者模式(Visitor)
 25.1 場景問題
  25.1.1 擴展客戶管理的功能
  25.1.2 不用模式的解決方案
  25.1.3 有何問題
 25.2 解決方案
  25.2.1 使用訪問者模式來解決問題
  25.2.2 訪問者模式的結(jié)構(gòu)和說明
  25.2.3 訪問者模式示例代碼
  25.2.4 使用訪問者模式重寫示例
 25.3 模式講解
  25.3.1 認識訪問者模式
  25.3.2 操作組合對象結(jié)構(gòu)
  25.3.3 誰負責遍歷所有元素對象
  25.3.4 訪問者模式的優(yōu)缺點
  25.3.5 思考訪問者模式
  25.3.6 相關(guān)模式
附錄A 常見面向?qū)ο笤O計原則
 A.1 設計模式和設計原則
  A.1.1 設計模式和設計原則的關(guān)系
  A.1.2 為何不重點講解設計原則
 A.2 常見的面向?qū)ο笤O計原則
  A.2.1 單一職責原則SRP(Single Responsibility Principle)
  A.2.2 開放-關(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 最少知識原則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 關(guān)系
 B.3 順序圖
  B.3.1 順序圖的概念
  B.3.2 順序圖的基本表達
臨別贈言
不是結(jié)束而是新的開始
你該怎么做
參考文獻

章節(jié)摘錄

插圖:適配器通過轉(zhuǎn)換調(diào)用已有的實現(xiàn),從而能把已有的實現(xiàn)匹配成需要的接口,使之能滿足客戶端的需要。也就是說轉(zhuǎn)換匹配是手段,而復用已有的功能才是目的。在進行轉(zhuǎn)換匹配的過程中,適配器還可以在轉(zhuǎn)換調(diào)用的前后實現(xiàn)一些功能處理,也就是實現(xiàn)智能的適配。2.何時選用適配器模式建議在以下情況中選用適配器模式。如果你想要使用一個已經(jīng)存在的類,但是它的接口不符合你的需求,這種情況可以使用適配器模式,來把已有的實現(xiàn)轉(zhuǎn)換成你需要的接口。如果你想創(chuàng)建一個可以復用的類,這個類可能和一些不兼容的類一起工作,這種情況可以使用適配器模式,到時候需要什么就適配什么。如果你想使用一些已經(jīng)存在的子類,但是不可能對每一個子類都進行適配,這種情況可以選用對象適配器,直接適配這些子類的父類就可以了。4.3.7 相關(guān)模式適配器模式與橋接模式其實這兩個模式除了結(jié)構(gòu)略為相似外,功能上完全不同。適配器模式是把兩個或者多個接口的功能進行轉(zhuǎn)換匹配;而橋接模式是讓接口和實現(xiàn)部分相分離,以便它們可以相對獨立地變化。

媒體關(guān)注與評論

高超的大師和蹩腳專家的區(qū)別就在于,前者能把復雜的東西講簡單,后者恰恰相反,支持樓主!   ——4樓rails201020100-07-19引用 比國內(nèi)某些所謂的大師寫的設計模式書好多了,比國外的大師寫的書更容易讓人懂,頂博主。   ——13樓dayday-up12010-08-04引用 樓主對廣義橋接模式的闡述,對我而言,只能用震撼來形容,從來就沒有這樣想過,但經(jīng)樓主講出來,確實又是這樣,樓主對模式的理解實在是太深刻了,超贊!好博文!看到第二篇的時候,基本上就已經(jīng)說到策略模式的核心點上了。能從核心擴展到相關(guān)應用,擴展到與其他模式的相同與不同,也足以說明了樓主對模式的深刻理解!呵呵,繼續(xù)期待其他模式。   ——4樓po-5342010-09-06引用 對樓主的佩服真是如滔滔江水,能把設計模式寫得這么深入淺出、深度廣度兼具,在我看過的資料里面,以絕對優(yōu)勢排第一,比市面上很多寫模式的書都要好很多。   ——8樓Superheizai2010-08-20引用 好強悍的博主,對模式的理解真的是深入,另外那個對流式輸出的分析,看java源代碼來的吧,真是透徹。   ——18樓leveret2010-08-20引用 由criblogs追到這里,樓主才是真正的人才,能把模式說的這么清楚的人的確不多! 確實不像現(xiàn)在很多都是淺嘗輒止的設計模式的韋,研磨系列,更深入,更具體!估計樓主這么長時間沒更新,肯定受出版社邀約了吧,呵呵。   ——6樓superheizai2010-09-06引用 很符合中國人的理解方式,所以覺得很親近,看起來舒服很多!   ——21樓bugrluke2010-09-28引用 膜拜大師的作品,頭些天粗略的看了一下《大話設計模式》和《重構(gòu)》,希望10年后有大師今天的成就。支持出書!   ——12樓EnterLee2010-08-11引用 樓主對模式的理解之深刻,表述之深入淺出,引人入勝,實在是讓人佩服。   ——7樓dakaiopen2010-09-02引用

編輯推薦

《研磨設計模式》:一本值得反復研讀的書……

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    研磨設計模式 PDF格式下載


用戶評論 (總計23條)

 
 

  •   很不錯的一本書,就是太貴了點
  •   還不錯,如果能夠把實際業(yè)務再詳細一點(也不用太詳細)就更好了,想在學習設計模式的時候,再了解一下業(yè)務邏輯。
  •   書中采用java的實例比較深,沒有java開發(fā)經(jīng)驗的,看起來太費勁。注釋占用了太多的空間,像是在湊頁數(shù)。UML圖表不清晰,看起來費勁。不如《設計模式之禪》寫的好。如果是java的程序員倒是可以看看,里面有不少案例。
  •   好書,2011年度十大IT技術(shù)圖書。將設計模式講的深入淺出。之前下載電子版,坐火車時查看了幾章,感覺寫的非常不錯,立馬到網(wǎng)上買了書
  •   內(nèi)容也還好,作者能想到的基本上都寫了。不過感覺有點羅嗦,特別成篇代碼的引用(有必要每個setter/getter都寫上?),加上行間距這么大,有點湊字數(shù)的感覺。
  •   設計模式是個抽象的東西,本書感覺講的還是有點隔靴搔癢,也許是我個人的功力還不夠深,還只用過java一年。不過如果我的功力到了,書里面很多又成了廢話了。。
  •   書中的例子都非常實際生動,而且與實際項目切合的非常好。每個模式的總結(jié)都有大家風范,比之《大話設計模式》各有千秋,大話只適合初學者,研磨呢就老少皆宜,書中凝聚了作者多年的經(jīng)驗。我也是看了作者的博客,一發(fā)不可收才買了此書,應該是我買過最好的技術(shù)類書籍之一吧。
  •   不錯,很有幫助!學習了!
  •   這邊書挺不錯的 講設計模式講的挺好的
  •   設計模式講的蠻詳細的,也容易懂,贊個...
  •   趕上活動時買的,挺好的,就是等的時間有點兒長。
  •   講解詳細,通俗易懂,案列很好
  •   看了一段時間這書真的不錯。不是盜版的
  •   這本書leader推薦我看看,還真的不錯,深入關(guān)注設計模式
  •   有很多事例,深入淺出
  •   書本的內(nèi)容一般,紙張還行,講解并不是通俗易懂,但是并不像其他人說的有那么好,書中文字和代碼都很大個,兩個字偏貴。個人意見,僅供參考。
  •   一本很中肯的書
  •   很不錯,專業(yè)的書也買的到!
  •   非常好~~~~~
  •   當做教材用?????
  •   向高級程序員進軍
  •   購買方便,送貨及時,不錯
  •   研磨設計模式
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7