| | | 圖解設計模式(圖靈出品) | 該商品所屬分類:圖書 -> 人民郵電出版社 | 【市場價】 | 1203-1744元 | 【優惠價】 | 752-1090元 | 【作者】 | 結城浩楊文軒 | 【出版社】 | 人民郵電出版社 | 【ISBN】 | 9787115439499 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
![](/c49/99/12019365.jpg)
出版社:人民郵電出版社 ISBN:9787115439499 版次:1 商品編碼:12019365 品牌:iTuring 包裝:平裝 叢書名:圖靈程序設計叢書 開本:16開 出版時間:2016-12-01 用紙:膠版紙 頁數:366 正文語種:中文 作者:結城浩,楊文軒
" 編輯推薦 原版連續暢銷12年、重印25次! 194張圖表 + Java示例代碼 = 輕松理解GoF的23種設計模式 《程序員的數學》《數學女孩》作者結城浩又一力作 1.圖文並茂 194張圖表(包括57張UML類圖)穿插文中,幫助理解各設計模式 2.通俗易懂 用淺顯的語言逐一講解23種設計模式,讀完此書會發現GoF書不再晦澀難懂 3.專業實用 編寫了Java程序代碼來實現設計模式,每章附帶練習題和答案,用以熟練掌握設計 模式 4.拓展進階 必要時對Java語言的功能進行了補充說明,可加深對Java的理解。此外,如果了解C++語言,同樣可以輕松理解本書內容
本書適合以下讀者閱讀 a.對面向對像開發感興趣的人 b.對設計模式感興趣的人(特別是閱讀了GoF書但是覺得難以理解的人) c.所有Java程序員(特別是對抽像類和接口的理解不充分的人) 內容簡介 本書以淺顯易懂的語言逐一說明了GoF的23種設計模式。在講解過程中,不僅搭配了豐富的圖片,而且理論結合實例,用Java語言編寫代碼實現了設計模式的程序,讓程序真正地運行起來,並提供了運用模式解決具體問題的練習題和答案。除此以外,本書在必要時還對Java語言的功能進行補充說明,以加深讀者對Java的理解。 作者簡介 結城浩(作者),生於1963年,日本傑出技術作家和程序員。在編程語言、設計模式、數學、加密技術等領域,編寫了很多深受歡迎的入門書。代表作有《數學女孩》繫列、《程序員的數學》、《圖解密碼技術》等。
楊文軒(譯者),華中科技大學碩士,擅長Web 2.0開發,有豐富的對日開發經驗。現就職於日本方正股份有限公司。譯作有《圖解基礎設施設計模式》《C現代編程:集成開發環境、設計模式、極限編程、測試驅動開發、重構、持續集成》 目錄 第1部分適應設計模式1 第1章Iterator模式——一個一個遍歷1 1.1Iterator模式2 1.2示例程序2 Aggregate接口3 Iterator接口5 Book類5 BookShelf類5 BookShelfIteraotr類6 Main類7 1.3Iterator模式中的登場角色8 1.4拓展思路的要點9 不管實現如何變化,都可以使用Iterator9 難以理解抽像類和接口9 Aggregate和Iterator的對應9 容易弄錯“下一個”10 還容易弄錯“最後一個”10 多個Iterator10 迭代器的種類多種多樣10 不需要deleteIterator10 1.5相關的設計模式11 1.6本章所學知識11 1.7練習題11 第2章Adapter模式——加個“適配器”以便於復用13 2.1Adapter模式14 2.2示例程序(1)(使用繼承的適配器)14 Banner類15 Print接口16 PrintBanner類16 Main類16 2.3示例程序(2)(使用委托的示例程序)17 Print類18 PrintBanner類18 2.4Adapter模式中的登場角色18 2.5拓展思路的要點19 什麼時候使用Adapter模式19 如果沒有現成的代碼20 版本升級與兼容性20 功能完全不同的類20 2.6相關的設計模式20 2.7本章所學知識21 2.8練習題21 第2部分交給子類23 第3章Template Method模式——將具體處理交給子類23 3.1Template Method模式24 什麼是模板24 什麼是TemplateMethod模式24 3.2示例程序24 AbstractDisplay類25 CharDisplay類26 StringDisplay類27 Main類28 3.3Template Method模式中的登場角色28 3.4拓展思路的要點29 可以使邏輯處理通用化29 父類與子類之間的協作29 父類與子類的一致性29 3.5相關的設計模式30 3.6延伸閱讀:類的層次與抽像類30 父類對子類的要求30 抽像類的意義30 父類與子類之間的協作31 3.7本章所學知識31 3.8練習題31 第4章Factory Method模式——將實例的生成交給子類33 4.1Factory Method模式34 4.2示例程序34 Product類35 Factory類35 IDCard類36 IDCardFactory類36 Main類37 4.3Factory Method模式中的登場角色37 4.4拓展思路的要點39 框架與具體加工39 生成實例——方法的三種實現方式39 使用模式與開發人員之間的溝通40 4.5相關的設計模式40 4.6本章所學知識41 4.7練習題41 第3部分生成實例43 第5章Singleton模式——隻有一個實例43 5.1Singleton模式44 5.2示例程序44 Singleton類44 Main類45 5.3Singleton模式中的登場角色46 5.4拓展思路的要點46 為什麼必須設置限制46 何時生成這個唯一的實例46 5.5相關的設計模式47 5.6本章所學知識47 5.7練習題47 第6章Prototype模式——通過復制生成實例49 6.1Prototype模式50 6.2示例程序50 Product接口51 Manager類52 MessageBox類52 UnderlinePen類53 Main類54 6.3Prototype模式中的登場角色55 6.4拓展思路的要點56 不能根據類來生成實例嗎56 類名是束縛嗎56 6.5相關的設計模式57 6.6延伸閱讀:clone方法和java.lang.Clonable接口57 Java語言的clone57 clone方法是在哪裡定義的58 需要實現Cloneable的哪些方法58 clone方法進行的是淺復制58 6.7本章所學知識58 6.8練習題59 第7章Builder模式——組裝復雜的實例61 7.1Builder模式62 7.2示例程序62 Builder類63 Director類63 TextBuilder類64 HTMLBuilder類65 Main類65 7.3Builder模式中的登場角色67 7.4相關的設計模式69 7.5拓展思路的要點69 誰知道什麼69 設計時能夠決定的事情和不能決定的事情70 代碼的閱讀方法和修改方法70 7.6本章所學知識70 7.7練習題70 第8章Abstract Factory模式——將關聯零件組裝成產品73 8.1Abstract Factory模式74 8.2示例程序74 抽像的零件:Item類77 抽像的零件:Link類78 抽像的零件:Tray類78 抽像的產品:Page類79 抽像的工廠:Factory類79 使用工廠將零件組裝稱為產品:Main類80 具體的工廠:ListFactory類81 具體的零件:ListLink類82 具體的零件:ListTray類82 具體的產品:ListPage類83 8.3為示例程序增加其他工廠84 具體的工廠:TableFactory類85 具體的零件:TableLink類86 具體的零件:TableTray類86 具體的產品:TablePage類87 8.4Abstract Factory模式中的登場角色87 8.5拓展思路的要點89 易於增加具體的工廠89 難以增加新的零件89 8.6相關的設計模式89 8.7延伸閱讀:各種生成實例的方法的介紹90 8.8本章所學知識91 8.9練習題91 第4部分分開考慮93 第9章Bridge模式——將類的功能層次結構與實現層次結構分離93 9.1Bridge模式94 9.2示例程序95 類的功能層次結構:Display類96 類的功能層次結構:CountDisplay類97 類的實現層次結構:DisplayImpl類97 類的實現層次結構:StringDisplayImpl類98 Main類98 9.3Bridge模式中的登場角色99 9.4拓展思路的要點100 分開後更容易擴展100 繼承是強關聯,委托是弱關聯100 9.5相關的設計模式101 9.6本章所學知識101 9.7練習題102 第10章Strategy模式——整體地替換算法103 10.1Strategy模式104 10.2示例程序104 Hand類105 Strategy接口106 WinningStrategy類106 ProbStrategy類107 Player類109 Main類109 10.3Strategy模式中的登場角色111 10.4拓展思路的要點112 為什麼需要特意編寫Strategy角色112 程序運行中也可以切換策略112 10.5相關的設計模式113 10.6本章所學知識113 10.7練習題113 第5部分一致性117 第11章Composite模式——容器與內容的一致性117 11.1Composite模式118 11.2示例程序118 Entry類119 File類120 Directory類121 FileTreatMentException類122 Main類122 11.3Composite模式中的登場角色124 11.4拓展思路的要點125 多個和單個的一致性125 Add方法應該放在哪裡126 到處都存在遞歸結構126 11.5相關的設計模式126 11.6本章所學知識127 11.7練習題127 第12章Decorator模式——裝飾邊框與被裝飾物的一致性129 12.1Decorator模式130 12.2示例程序130 Display類131 StringDisplay類132 Border類132 SideBorder類133 FullBorder類134 Main類135 12.3Decorator模式中的登場角色136 12.4拓展思路的要點137 接口(API)的透明性137 在不改變被裝飾物的前提下增加功能138 可以動態地增加功能138 隻需要一些裝飾物即可添加許多功能138 java.io包與Decorator模式138 導致增加許多很小的類139 12.5相關的設計模式139 12.6延伸閱讀:繼承和委托中的一致性140 繼承——父類和子類的一致性140 委托——自己和被委托對像的一致性140 12.7本章所學知識142 12.8練習題142 第6部分訪問數據結構145 第13章Visitor模式——訪問數據結構並處理數據145 13.1Visitor模式146 13.2示例程序146 Visitor類147 Element接口148 Entry類148 File類148 Directory類149 ListVisitor類150 FileTreatmentException類151 Main類151 Visitor與Element之間的相互調用152 13.3Visitor模式中的登場角色154 13.4拓展思路的要點155 雙重分發155 為什麼要弄得這麼復雜155 開閉原則——對擴展開放,對修改關閉155 易於增加ConcreteVisitor角色156 難以增加ConcreteElement角色156 Visitor工作所需的條件156 13.5相關的設計模式157 13.6本章所學知識157 13.7練習題157 第14章Chain of Responsibility模式——推卸責任161 14.1Chain of Responsibility模式162 14.2示例程序162 Trouble類163 Support類163 NoSupport類164 LimitSupport類164 OddSupport類165 SpecialSupport類165 Main類166 14.3Chain of Responsibility模式中的登場角色167 14.4拓展思路的要點168 弱化了發出請求的人和處理請求的人之間的關繫168 可以動態地改變職責鏈168 專注於自己的工作169 推卸請求會導致處理延遲嗎169 14.5相關的設計模式169 14.6本章所學知識169 14.7練習題169 第7部分簡單化171 第15章Facade模式——簡單窗口171 15.1Facade模式172 15.2示例程序172 Database類173 HtmlWriter類174 PageMaker類175 Main類176 15.3Facade模式中的登場角色176 15.4拓展思路的要點177 Facade角色到底做什麼工作177 遞歸地使用Facade模式178 開發人員不願意創建Facade角色的原因——心理原因178 15.5相關的設計模式178 15.6本章所學知識178 15.7練習題179 第16章Mediator模式——隻有一個仲裁者181 16.1Mediator模式182 16.2示例程序182 Mediator接口185 Colleague接口186 ColleagueButton類186 ColleagueTextField類187 ColleagueCheckbox類188 LoginFrame類188 Main類191 16.3Mediator模式中的登場角色191 16.4拓展思路的要點192 當發生分散災難時192 通信線路的增加193 哪些角色可以復用193 16.5相關的設計模式193 16.6本章所學知識193 16.7練習題194 第8部分管理狀態195 第17章Observer模式——發送狀態變化通知195 17.1Observer模式196 17.2示例程序196 Observer接口196 NumberGenerator類197 RandomNumberGenerator類198 DigitObserver類198 GraphObserver類199 Main類199 17.3Observer模式中的登場角色200 17.4拓展思路的要點201 這裡也出現了可替換性201 Observer的順序202 當Observer的行為會對Subject產生影響時202 傳遞更新信息的方式202 從“觀察”變為“通知”203 Model/View/Controller(MVC)203 17.5延伸閱讀:java.util.Observer接口203 17.6相關的設計模式204 17.7本章所學知識204 17.8練習題204 第18章Memento模式——保存對像狀態207 18.1Memento模式208 18.2示例程序208 Memento類209 Gamer類210 Main類211 18.3Memento模式中的登場角色215 18.4拓展思路的要點216 兩種接口(API)和可見性216 需要多少個Memento217 Memento的有效期限是多久217 劃分Caretaker角色和Originator角色的意義217 18.5相關的設計模式218 18.6本章所學知識218 18.7練習題218 第19章State模式——用類表示狀態221 19.1State模式222 19.2示例程序222 金庫警報繫統222 不使用State模式的偽代碼223 使用了State模式的偽代碼224 State接口226 DayState類226 NightState類227 Context接口228 SafeFrame類228 Main類231 19.3State模式中的登場角色232 19.4拓展思路的要點233 分而治之233 依賴於狀態的處理233 應當是誰來管理狀態遷移233 不會自相矛盾234 易於增加新的狀態234 實例的多面性235 19.5相關的設計模式235 19.6本章所學知識235 19.7練習題236 第9部分避免浪費237 第20章Flyweight模式——共享對像,避免浪費237 20.1Flyweight模式238 20.2示例程序238 BigChar類240 BigCharFactory類241 BigString類242 Main類244 20.3Flyweight模式中的登場角色244 20.4拓展思路的要點245 對多個地方產生影響245 Intrinsic與Extrinsic246 不要讓被共享的實例被垃圾回收器回收了246 內存之外的其他資源247 20.5相關的設計模式247 20.6本章所學知識247 20.7練習題247 第21章Proxy模式——隻在必要時生成實例249 21.1Proxy模式250 21.2示例程序250 Printer類251 Printable接口252 PrinterProxy類253 Main類254 21.3Proxy模式中的登場角色254 21.4拓展思路的要點255 使用代理人來提升處理速度255 有必要劃分代理人和本人嗎256 代理與委托256 透明性256 HTTP代理256 各種Proxy模式257 21.5相關的設計模式257 21.6本章所學知識257 21.7練習題257 第10部分用類來表現259 第22章Command模式——命令也是類259 22.1Command模式260 22.2示例程序260 Command接口261 MacroCommand類262 DrawCommand類263 Drawable接口263 DrawCanvas類264 Main類265 22.3Command模式中的登場角色268 22.4拓展思路的要點269 命令中應該包含哪些信息269 保存歷史記錄269 適配器269 22.5相關的設計模式271 22.6本章所學知識272 22.7練習題272 第23章Interpreter模式——語法規則也是類273 23.1Interpreter模式274 23.2迷你語言274 迷你語言的命令274 迷你語言程序示例275 迷你語言的語法278 終結符表達式與非終結符表達式279 23.3示例程序279 Node類281 ProgramNode類281 CommandListNode類282 CommandNode類283 RepeatCommandNode類284 PrimitiveCommandNode類285 Context類285 ParseException類286 Main類287 23.4Interpreter模式中的登場角色288 23.5拓展思路的要點289 還有其他哪些迷你語言289 跳過標記還是讀取標記290 23.6相關的設計模式290 23.7本章所學知識以及本書的結束語290 23.8練習題290 附錄293 附錄A習題解答294 附錄B示例程序的運行步驟359 附錄CGoF對設計模式的分類361 附錄D設計模式Q&A362 附錄E參考書籍365 查看全部↓
" | | | | | |