中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊

包郵 圖解設計模式

出版社:人民郵電出版社出版時間:2017-01-01
開本: 32開 頁數: 366
中 圖 價:¥50.0(6.3折) 定價  ¥79.0 登錄后可看到會員價
暫時缺貨 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

圖解設計模式 版權信息

圖解設計模式 本書特色

本書以淺顯易懂的語言逐一說明了GoF的23種設計模式。在講解過程中,不僅搭配了豐富的圖片,而且理論結合實例,用Java語言編寫代碼實現了設計模式的程序,讓程序真正地運行起來,并提供了運用模式解決具體問題的練習題和答案。除此以外,本書在必要時還對Java語言的功能進行補充說明,以加深讀者對Java的理解。

圖解設計模式 內容簡介

原版連續暢銷12年、重印25次! 194張圖表 + Java示例代碼 = 輕松理解GoF的23種設計模式 《程序員的數學》《數學女孩》作者結城浩又一力作 圖文并茂,194張圖表(包括57張UML類圖)穿插文中,幫助理解各設計模式。 通俗易懂,用淺顯的語言逐一講解23種設計模式,讀完此書會發現GoF書不再晦澀難懂。 專業實用,編寫了Java程序代碼來實現設計模式,每章附帶練習題和答案,用以熟練掌握設計 模式。 拓展進階,必要時對Java語言的功能進行了補充說明,可加深對Java的理解。此外,如果了解C 語言,同樣可以輕松理解本書內容。 本書適合以下讀者閱讀 •對面向對象開發感興趣的人 •對設計模式感興趣的人(特別是閱讀了GoF書但是覺得難以理解的人) •所有Java程序員(特別是對抽象類和接口的理解不充分的人)

圖解設計模式 目錄

目錄

第1部分 適應設計模式 1
第1章 Iterator模式——一個一個遍歷 1
1.1 Iterator模式 2
1.2 示例程序 2
Aggregate接口 3
Iterator接口 5
Book類 5
BookShelf類 5
BookShelfIteraotr類 6
Main類 7
1.3 Iterator模式中的登場角色 8
1.4 拓展思路的要點 9目錄

第1部分 適應設計模式 1
第1章 Iterator模式——一個一個遍歷 1
1.1 Iterator模式 2
1.2 示例程序 2
Aggregate接口 3
Iterator接口 5
Book類 5
BookShelf類 5
BookShelfIteraotr類 6
Main類 7
1.3 Iterator模式中的登場角色 8
1.4 拓展思路的要點 9
不管實現如何變化,都可以使用Iterator 9
難以理解抽象類和接口 9
Aggregate和Iterator的對應 9
容易弄錯“下一個” 10
還容易弄錯 “*后一個” 10
多個Iterator 10
迭代器的種類多種多樣 10
不需要deleteIterator 10
1.5 相關的設計模式 11
1.6 本章所學知識 11
1.7 練習題 11
第2章 Adapter模式——加個“適配器”以便于復用 13
2.1 Adapter模式 14
2.2 示例程序(1)(使用繼承的適配器) 14
Banner類 15
Print接口 16
PrintBanner類 16
Main類 16
2.3 示例程序(2)(使用委托的示例程序) 17
Print類 18
PrintBanner類 18
2.4 Adapter模式中的登場角色 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.1 Template Method模式 24
什么是模板 24
什么是Template Method模式 24
3.2 示例程序 24
AbstractDisplay類 25
CharDisplay類 26
StringDisplay類 27
Main類 28
3.3 Template 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.1 Factory Method模式 34
4.2 示例程序 34
Product類 35
Factory類 35
IDCard類 36
IDCardFactory類 36
Main類 37
4.3 Factory Method模式中的登場角色 37
4.4 拓展思路的要點 39
框架與具體加工 39
生成實例——方法的三種實現方式 39
使用模式與開發人員之間的溝通 40
4.5 相關的設計模式 40
4.6 本章所學知識 41
4.7 練習題 41
第3部分 生成實例 43
第5章 Singleton模式——只有一個實例 43
5.1 Singleton模式 44
5.2 示例程序 44
Singleton類 44
Main類 45
5.3 Singleton模式中的登場角色 46
5.4 拓展思路的要點 46
為什么必須設置限制 46
何時生成這個唯一的實例 46
5.5 相關的設計模式 47
5.6 本章所學知識 47
5.7 練習題 47
第6章 Prototype模式——通過復制生成實例 49
6.1 Prototype模式 50
6.2 示例程序 50
Product接口 51
Manager類 52
MessageBox類 52
UnderlinePen類 53
Main類 54
6.3 Prototype模式中的登場角色 55
6.4 拓展思路的要點 56
不能根據類來生成實例嗎 56
類名是束縛嗎 56
6.5 相關的設計模式 57
6.6 延伸閱讀:clone方法和java.lang.Clonable接口 57
Java語言的clone 57
clone方法是在哪里定義的 58
需要實現Cloneable的哪些方法 58
clone方法進行的是淺復制 58
6.7 本章所學知識 58
6.8 練習題 59
第7章 Builder模式——組裝復雜的實例 61
7.1 Builder模式 62
7.2 示例程序 62
Builder類 63
Director類 63
TextBuilder類 64
HTMLBuilder類 65
Main類 65
7.3 Builder模式中的登場角色 67
7.4 相關的設計模式 69
7.5 拓展思路的要點 69
誰知道什么 69
設計時能夠決定的事情和不能決定的事情 70
代碼的閱讀方法和修改方法 70
7.6 本章所學知識 70
7.7 練習題 70
第8章 Abstract Factory模式——將關聯零件組裝成產品 73
8.1 Abstract 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.4 Abstract 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.1 Bridge模式 94
9.2 示例程序 95
類的功能層次結構:Display類 96
類的功能層次結構:CountDisplay類 97
類的實現層次結構:DisplayImpl類 97
類的實現層次結構:StringDisplayImpl類 98
Main類 98
9.3 Bridge模式中的登場角色 99
9.4 拓展思路的要點 100
分開后更容易擴展 100
繼承是強關聯,委托是弱關聯 100
9.5 相關的設計模式 101
9.6 本章所學知識 101
9.7 練習題 102
第10章 Strategy模式——整體地替換算法 103
10.1 Strategy模式 104
10.2 示例程序 104
Hand類 105
Strategy接口 106
WinningStrategy類 106
ProbStrategy類 107
Player類 109
Main類 109
10.3 Strategy模式中的登場角色 111
10.4 拓展思路的要點 112
為什么需要特意編寫Strategy角色 112
程序運行中也可以切換策略 112
10.5 相關的設計模式 113
10.6 本章所學知識 113
10.7 練習題 113
第5部分 一致性 117
第11章 Composite模式——容器與內容的一致性 117
11.1 Composite模式 118
11.2 示例程序 118
Entry類 119
File類 120
Directory類 121
FileTreatMentException類 122
Main類 122
11.3 Composite模式中的登場角色 124
11.4 拓展思路的要點 125
多個和單個的一致性 125
Add方法應該放在哪里 126
到處都存在遞歸結構 126
11.5 相關的設計模式 126
11.6 本章所學知識 127
11.7 練習題 127
第12章 Decorator模式——裝飾邊框與被裝飾物的一致性 129
12.1 Decorator模式 130
12.2 示例程序 130
Display類 131
StringDisplay類 132
Border類 132
SideBorder類 133
FullBorder類 134
Main類 135
12.3 Decorator模式中的登場角色 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.1 Visitor模式 146
13.2 示例程序 146
Visitor類 147
Element接口 148
Entry類 148
File類 148
Directory類 149
ListVisitor類 150
FileTreatmentException類 151
Main類 151
Visitor與Element之間的相互調用 152
13.3 Visitor模式中的登場角色 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.1 Chain of Responsibility模式 162
14.2 示例程序 162
Trouble類 163
Support類 163
NoSupport類 164
LimitSupport類 164
OddSupport類 165
SpecialSupport類 165
Main類 166
14.3 Chain 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.1 Facade模式 172
15.2 示例程序 172
Database類 173
HtmlWriter類 174
PageMaker類 175
Main類 176
15.3 Facade模式中的登場角色 176
15.4 拓展思路的要點 177
Facade角色到底做什么工作 177
遞歸地使用Facade模式 178
開發人員不愿意創建Facade角色的原因——心理原因 178
15.5 相關的設計模式 178
15.6 本章所學知識 178
15.7 練習題 179
第16章 Mediator模式——只有一個仲裁者 181
16.1 Mediator模式 182
16.2 示例程序 182
Mediator接口 185
Colleague接口 186
ColleagueButton類 186
ColleagueTextField類 187
ColleagueCheckbox類 188
LoginFrame類 188
Main類 191
16.3 Mediator模式中的登場角色 191
16.4 拓展思路的要點 192
當發生分散災難時 192
通信線路的增加 193
哪些角色可以復用 193
16.5 相關的設計模式 193
16.6 本章所學知識 193
16.7 練習題 194
第8部分 管理狀態 195
第17章 Observer模式——發送狀態變化通知 195
17.1 Observer模式 196
17.2 示例程序 196
Observer接口 196
NumberGenerator類 197
RandomNumberGenerator類 198
DigitObserver類 198
GraphObserver類 199
Main類 199
17.3 Observer模式中的登場角色 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.1 Memento模式 208
18.2 示例程序 208
Memento類 209
Gamer類 210
Main類 211
18.3 Memento模式中的登場角色 215
18.4 拓展思路的要點 216
兩種接口(API)和可見性 216
需要多少個Memento 217
Memento的有效期限是多久 217
劃分Caretaker角色和Originator角色的意義 217
18.5 相關的設計模式 218
18.6 本章所學知識 218
18.7 練習題 218
第19章 State模式——用類表示狀態 221
19.1 State模式 222
19.2 示例程序 222
金庫警報系統 222
不使用State模式的偽代碼 223
使用了State模式的偽代碼 224
State接口 226
DayState類 226
NightState類 227
Context接口 228
SafeFrame類 228
Main類 231
19.3 State模式中的登場角色 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.1 Flyweight模式 238
20.2 示例程序 238
BigChar類 240
BigCharFactory類 241
BigString類 242
Main類 244
20.3 Flyweight模式中的登場角色 244
20.4 拓展思路的要點 245
對多個地方產生影響 245
Intrinsic與Extrinsic 246
不要讓被共享的實例被垃圾回收器回收了 246
內存之外的其他資源 247
20.5 相關的設計模式 247
20.6 本章所學知識 247
20.7 練習題 247
第21章 Proxy模式——只在必要時生成實例 249
21.1 Proxy模式 250
21.2 示例程序 250
Printer類 251
Printable接口 252
PrinterProxy類 253
Main類 254
21.3 Proxy模式中的登場角色 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.1 Command模式 260
22.2 示例程序 260
Command接口 261
MacroCommand類 262
DrawCommand類 263
Drawable接口 263
DrawCanvas類 264
Main類 265
22.3 Command模式中的登場角色 268
22.4 拓展思路的要點 269
命令中應該包含哪些信息 269
保存歷史記錄 269
適配器 269
22.5 相關的設計模式 271
22.6 本章所學知識 272
22.7 練習題 272
第23章 Interpreter模式——語法規則也是類 273
23.1 Interpreter模式 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.4 Interpreter模式中的登場角色 288
23.5 拓展思路的要點 289
還有其他哪些迷你語言 289
跳過標記還是讀取標記 290
23.6 相關的設計模式 290
23.7 本章所學知識以及本書的結束語 290
23.8 練習題 290
附 錄 293
附錄A 習題解答 294
附錄B 示例程序的運行步驟 359
附錄C GoF對設計模式的分類 361
附錄D 設計模式Q&A 362
附錄E 參考書籍 365
信息
展開全部

圖解設計模式 作者簡介

結城浩(作者) 生于1963年,日本杰出技術作家和程序員。在編程語言、設計模式、數學、加密技術等領域,編寫了很多深受歡迎的入門書。代表作有《數學女孩》系列、《程序員的數學》、《圖解密碼技術》等。 楊文軒(譯者) 華中科技大學碩士,擅長Web 2.0開發,有豐富的對日開發經驗。現就職于日本方正股份有限公司。譯作有《圖解基礎設施設計模式》《C現代編程:集成開發環境、設計模式、極限編程、測試驅動開發、重構、持續集成》

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 电位器_轻触开关_USB连接器_广东精密龙电子科技有限公司 | 工业CT-无锡璟能智能仪器有限公司 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 影合社-影视人的内容合作平台 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 气动|电动调节阀|球阀|蝶阀-自力式调节阀-上海渠工阀门管道工程有限公司 | 国资灵活用工平台_全国灵活用工平台前十名-灵活用工结算小帮手 | 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 双舌接地线-PC68数字式高阻计-ZC36|苏海百科 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 洗地机_全自动洗地机_手推式洗地机【上海滢皓环保】 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 开云(中国)Kaiyun·官方网站 - 登录入口| 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 出国劳务公司_正规派遣公司[严海] | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 广东之窗网 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 |