設計模式:可復用面向對像軟件的基礎(典藏版)(設計良好.表達
作 者: [美] 埃裡克·伽瑪(Erich Gamma)等 著 李英軍 馬曉星 蔡敏 劉建中 等 譯
定 價: 79
出?版?社: 機械工業出版社
出版日期: 2019年05月01日
頁 數: 290
裝 幀: 平裝
ISBN: 9787111618331
●出版者的話贊譽序言前言讀者指南章引言┊11.1 什麼是設計模式┊31.2 Smalltalk MVC中的設計模式┊41.3 描述設計模式┊61.4 設計模式的編目┊71.5 組織編目┊81.6 設計模式怎樣解決設計問題┊101.6.1 尋找合適的對像┊101.6.2 決定對像的粒度┊111.6.3 指定對像接口┊111.6.4 描述對像的實現┊121.6.5 運用復用機制┊151.6.6 關聯運行時和編譯時的結構┊181.6.7 設計應支持變化┊191.7 怎樣選擇設計模式┊221.8 怎樣使用設計模式┊24第2章實例研究:設計一個文檔編輯器┊252.1 設計問題┊272.2 文檔結構┊272.2.1 遞歸組合┊282.2.2 &nbs┊292.2.3 組合模式┊312.3 格式化┊312.3.1 封裝格式化算法┊312.3.2 Compositor和Composition┊322.3.3 策略模式┊332.4 修飾用戶界面┊342.4.1 透明圍欄┊342.4.2 Monoglyph┊352.4.3 Decorator模式┊362.5 支持多種視感標準┊372.5.1 對像創建的抽像┊372.5.2 工廠類和產品類┊382.5.3 Abstract Factory 模式┊402.6 支持多種窗口繫統┊402.6.1 是否可以使用Abstract Factory模式┊402.6.2 封裝實現依賴關繫┊412.6.3 Window和WindowImp┊432.6.4 Bridge模式┊462.7 用戶操作┊462.7.1 封裝一個請求┊472.7.2 Command類及其子類┊472.7.3 撤銷和重做┊482.7.4 命令歷史記錄┊492.7.5 Command模式┊502.8 拼寫檢查和斷字處理┊502.8.1 訪問分散的信息┊512.8.2 封裝訪問和遍歷┊512.8.3 Iterator類及其子類┊522.8.4 Iterator模式┊552.8.5 遍歷和遍歷過程中的動作┊552.8.6 封裝分析┊562.8.7 Visitor類及其子類┊592.8.8 Visitor模式┊602.9 小結┊60第3章創建型模式┊623.1 Abstract Factory(抽像工廠)—對像創建型模式┊663.2 Builder(生成器)—對像創建型模式┊743.3 Factory Method(工廠方法)—對像創建型模式┊813.4 Prototype(原型)—對像創建型模式┊893.5 Singleton(單件)—對像創建型模式┊963.6 創建型模式的討論┊102第4章結構型模式┊1044.1 Adapter(適配器)—類對像結構型模式┊1064.2 Bridge(橋接)—對像結構型模式┊1154.3 Composite(組合)—對像結構型模式┊1234.4 Decorator(裝飾)—對像結構型模式┊1324.5 Facade(外觀)—對像結構型模式┊┊1394.6 Flyweigh)—對像結構型模式┊1464.7 Proxy(代理)—對像結構型模式┊1554.8 結構型模式的討論 ┊1644.8.1 Adapter與Bridge┊1644.8.2 Composite、Decorator與Proxy┊164第5章行為型模式┊1665.1 Chain of Responsibility(職責鏈)—對像行為型模式┊1675.2 Command(命令)—對像行為型模式┊1755.3 Interpreter(解釋器)—類行為型模式┊1835.4 Iterator(迭代器)—對像行為型模式┊1935.5 Mediator(中介者)—對像行為型模式┊2055.6 Memento(備忘錄)—對像行為型模式┊2125.7 Observer(觀察者)—對像行為型模式┊2195.8 State(狀態)—對像行為型模式┊2275.9 Strategy(策略)—對像行為型模式┊2345.10 Template Method(模板方法)— 類行為型模式┊2425.11 Visitor(訪問者)—對像行為型 模式┊2465.12 行為型模式的討論┊2565.12.1 封裝變化┊2565.12.2 對像作為參數┊2575.12.3 通信應該被封裝還是被分布┊2575.12.4 對發送者和接收者解耦┊2585.12.5 總結┊260第6章結論┊2616.1 設計模式將帶來什麼┊2626.1.1 一套通用的設計詞彙┊2626.1.2 書寫文檔和學習的輔助手段┊2636.1.3 現有方法的一種補充┊2636.1.4 重構的目標┊2646.2 本書簡史┊2656.3 模式界┊2666.3.1 Alexander的模式語言┊2666.3.2 軟件中的模式┊2676.4 邀請參與┊2676.5 臨別感想┊268附錄A詞彙表┊269附錄B圖示符號指南┊273附錄 C基本類┊277參考文獻┊284
內容簡介
本書結合設計實例從面向對像的設計中精選出23個設計模式, 總結了面向對像設計中*有價值的經驗, 並且用簡潔可復用的形式表達出來。本書分類描述了一組設計良好、 表達清楚的軟件設計模式, 這些模式在實用環境下特別有用。 本書適合大學計算機專業的學生、研究生及相關人員參考。
[美] 埃裡克·伽瑪(Erich Gamma)等 著 李英軍 馬曉星 蔡敏 劉建中 等 譯
埃裡克·伽瑪(Erich Gamma) 在瑞士蘇黎世大學獲得計算機科學博士學位。他與Kent Beck合作開測試框架JUnit,並領導了Eclipse Java Development Tools項目。他還曾是IBM Rational Jazz項目的主要成員。2011年,Gamma以傑出工程師(Distinguished Engineer)的身份加入微軟Visual Studio團隊,領導微軟位於瑞士蘇黎世的實驗室。理查德·赫爾姆(Richard Helm) 在澳大利亞墨爾本大學獲得計算機科學博士學位,曾在IBM T. J. Watson擔任研究員,並在澳大利亞開創了IBM面向對像......
章引 言設計面向對像軟件比較困難,而設計可復用的面向對像軟件就更加困難。你必須找到相關的對像,以適當的粒度將它們歸類,再定義類的接口和繼承層次,建立對像之間的基本關繫。你的設計應該對手頭的問題有針對性,同時對將來的問題和需求也要有足夠的通用性。你也希望避免重復設計或盡可能少做重復設計。有經驗的面向對像設計者會告訴你,要一下子就得到復用性和靈活性好的設計,即使不是不可能的至少也是很好困難的。一個設計在很終完成之前經常要被復用好幾次,而且每一次都有所修改。有經驗的面向對像設計者的確能做出良好的設計,而新手則面對眾多選擇無從下手,總是求助於以前使用過的非面向對像技術。新手需要花費較長時間領會良好的面向對像設計是怎麼回事。有經驗的設計者顯然知道一些新手所不知道的東西,這又是什麼呢?內行的設計者知道:不是解......
本書並不是一本介紹面向對像技術或設計的書,目前已有不少好書介紹面向對像技術或設計。本書假設你至少已經比較熟悉一種面向對像編程語言,並且有一定的面向對像設計經驗。當我們提及“類型”和“多態”,或“接口”繼承與“實現”繼承的關繫時,你應該對這些概念了然於胸,而不是迫不及待地翻閱手頭的字典。另外,這也不是一篇不錯專題技術論文,而是一本關於設計模式的書,它描述了在面向對像軟件設計過程中針對特定問題的簡潔而優雅的解決方案。設計模式捕獲了隨時間進化與發展的問題的求解方法,因此它們並不是人們從一開始就采用的設計方案。它們反映了不為人知的重新設計和重新編碼的成果,而這些都來自軟件開發者為了設計出靈活、可復用的軟件而長時間進行的艱苦努力。設計模式捕獲了這些解決方案,並用簡潔易用的方式表達出來。設計模式並不要求使用獨特的語言特性,也不采用那些足以使你的朋友或老板大喫一驚的神奇的編程技巧。所有的模式均可以用標準......
"