-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

精通Swift設計模式

( 簡體 字)
作者:[美] 亞當·弗里曼 ( Adam Freeman ) 類別:1. -> 程式設計 -> 手機程式 -> Swift
譯者:
出版社:人民郵電出版社精通Swift設計模式 3dWoo書號: 45209
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:9/1/2016
頁數:444
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115433480
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

  本書是系統學習Swift 設計模式和Cocoa 框架知識的絕佳參考圖書。書中內容分為五部分:首部分介紹學習本書的預備知識,包括使用Xcode 創建的Playgroud 文件和名為SportsStore 的iOS 應用;第二部分講解創建型模式,并輔以大量代碼示例和圖示;第三部分闡述結構型模式,并重點區分了容易混淆的模式;第四部分介紹行為型模式,總結了一些知名度較小的模式;第五部分討論MVC 模式,剖析了MVC 模式的重要性。
目錄:

第一部分 準備工作
第1 章 設計模式 2
1.1 將設計模式置于上下文中 2
1.1.1 設計模式簡介 3
1.1.2 設計模式的結構 3
1.1.3 量化設計模式 4
1.1.4 問題出現之后使用設計模式 4
1.1.5 設計模式的局限 5
1.2 關于本書 5
1.2.1 讀者需要哪些知識背景 5
1.2.2 讀者需要哪些軟件 5
1.2.3 本書的結構 6
1.2.4 獲取示例代碼 6
1.3 總結 6
第2 章 熟悉Xcode 的使用 7
2.1 使用Xcode Playground 7
2.1.1 創建Playground 7
2.1.2 查看變量取值的歷史記錄 9
2.1.3 使用取值時間軸 11
2.1.4 在Playground 中使用UI 組件 13
2.2 使用OS X 命令行工具項目 14
2.2.1 創建命令行工具項目 14
2.2.2 Xcode 的布局 15
2.2.3 新建一個Swift 文件 16
2.3 總結 19
第3 章 開發SportsStore 應用 20
3.1 創建一個簡單的iOS 應用項目 20
3.1.1 新建項目 21
3.1.2 熟悉Xcode 的布局 22
3.1.3 定義數據 23
3.2 構建簡單的布局 25
3.2.1 添加基本組件 26
3.2.2 配置Auto Layout 28
3.2.3 測試布局效果 29
3.3 實現與顯示庫存總量的Label 相關的
代碼 30
3.3.1 創建引用 30
3.3.2 更新界面顯示 31
3.4 實現table cell 32
3.4.1 配置自定義table cell 和布局 32
3.4.2 配置table cell 的布局約束 34
3.4.3 創建table cell 類和Outlet 34
3.4.4 實現數據源協議 36
3.4.5 注冊數據源 37
3.4.6 測試數據源 38
3.5 處理編輯操作 38
3.6 測試SportsStore 應用 41
3.7 總結 42
第二部分 創建型模式
第4 章 對象模板模式 44
4.1 準備示例項目 44
4.2 此模式旨在解決的問題 45
4.3 對象模板模式 47
4.4 實現對象模板模式 48
4.5 對象模板模式的優點 49
4.5.1 解耦的好處 49
4.5.2 封裝的優點 50
4.5.3 不斷演化外部呈現的好處 52
4.6 對象模板模式的陷阱 54
4.7 Cocoa 中使用對象模板模式的示例 54
4.8 在SportsStore 應用中使用對象模板
模式 54
4.8.1 準備示例應用 54
4.8.2 創建Product 類 56
4.8.3 使用Product 類 58
4.8.4 擴展應用的總結信息 60
4.9 總結 61
第5 章 原型模式 62
5.1 此模式旨在解決的問題 62
5.1.1 初始化過程開銷大 62
5.1.2 對模板的依賴 64
5.2 原型模式 65
5.3 實現原型模式 65
5.3.1 克隆引用類型 67
5.3.2 淺復制與深復制 70
5.3.3 復制數組 73
5.4 原型模式的優點 75
5.4.1 避免內存開銷大的初始化操作 75
5.4.2 分離對象的創建與使用 77
5.5 原型模式的陷阱 83
5.5.1 陷阱一:深復制與淺復制 83
5.5.2 陷阱二:扭曲代碼結構 83
5.5.3 陷阱三:不標準的協議 83
5.6 Cocoa 中使用原型模式的實例 83
5.6.1 使用Cocoa 數組 84
5.6.2 使用NSCopying 屬性修飾符 86
5.7 在SportsStore 應用中使用原型模式 87
5.7.1 準備示例應用 87
5.7.2 在Product 類中實現NSCopying
協議 87
5.7.3 創建Logger 類 88
5.7.4 在View Controller 中輸出修改
日志 89
5.7.5 測試修改 91
5.8 總結 91
第6 章 單例模式 92
6.1 準備示例項目 92
6.2 此模式旨在解決的問題 92
6.3 單例模式 96
6.4 實現單例模式 96
6.4.1 快速實現單例模式 96
6.4.2 創建一個傳統的單例實現 98
6.4.3 處理并發 100
6.5 單例模式的陷阱 104
6.5.1 泄露缺陷 104
6.5.2 代碼文件共享帶來的問題 105
6.5.3 并發陷阱 105
6.6 Cocoa 中使用單例模式的實例 106
6.7 在SportsStore 應用中使用單例模式 106
6.7.1 保護數據數組 107
6.7.2 保護回調 108
6.7.3 定義單例 109
6.8 總結 111
第7 章 對象池模式 112
7.1 準備示例項目 112
7.2 此模式旨在解決的問題 113
7.3 對象池模式 113
7.4 實現對象池模式 114
7.4.1 定義Pool 類 114
7.4.2 使用Pool 類 118
7.5 對象池模式的陷阱 121
7.6 Cocoa 中使用對象池模式的實例 121
7.7 在SportsStore 應用中使用對象池
模式 122
7.7.1 準備示例應用 122
7.7.2 創建一個(偽)服務器 122
7.7.3 創建對象池 123
7.7.4 應用對象池模式 124
7.8 總結 127
第8 章 對象池模式的變體 128
8.1 準備示例項目 128
8.2 對象池模式的變體 128
8.2.1 對象創建策略 129
8.2.2 對象復用策略 132
8.2.3 空池策略 136
8.2.4 對象分配策略 146
8.3 對象池模式變體的陷阱 148
8.3.1 期望與現實之間的差距 149
8.3.2 過度利用與低利用率 149
8.4 Cocoa 中使用對象池模式變體的示例 149
8.5 在SportsStore 應用中使用對象池模式
變體 149
8.6 總結 151
第9 章 工廠方法模式 152
9.1 準備示例項目 152
9.2 此模式旨在解決的問題 154
9.3 工廠方法模式 156
9.4 實現工廠方法模式 156
9.4.1 定義全局工廠方法 157
9.4.2 使用基類 158
9.5 工廠方法模式的變體 162
9.6 工廠方法模式的陷阱 164
9.7 Cocoa 中使用工廠方法模式的示例 164
9.8 在SportsStore 應用中使用工廠方法
模式 164
9.8.1 準備示例應用 164
9.8.2 實現工廠方法模式 166
9.8.3 應用工廠方法模式 167
9.9 總結 168
第10 章 抽象工廠模式 169
10.1 準備示例項目 169
10.2 此模式旨在解決的問題 172
10.3 抽象工廠模式 172
10.4 實現抽象工廠模式 174
10.4.1 創建抽象工廠類 174
10.4.2 創建具體工廠類 174
10.4.3 完善抽象工廠類 175
10.4.4 使用抽象工廠模式 176
10.5 抽象工廠模式的變體 177
10.5.1 隱藏抽象工廠類 177
10.5.2 在具體工廠類中使用單例
模式 178
10.5.3 在實現類中使用原型模式 180
10.6 抽象工廠模式的陷阱 185
10.7 Cocoa 中使用抽象工廠模式的示例 185
10.8 在SportsStore 應用中使用抽象工廠
模式 186
10.8.1 準備示例應用 186
10.8.2 定義實現類和協議 186
10.8.3 定義抽象與具體工廠類 187
10.8.4 使用工廠與實現類 188
10.9 總結 189
第11 章 建造者模式 190
11.1 準備示例項目 190
11.2 建造者模式 194
11.3 實現建造者模式 195
11.3.1 定義建造者類 195
11.3.2 使用建造者類 196
11.3.3 此模式的影響 196
11.4 建造者模式的變體 200
11.5 建造者模式的陷阱 202
11.6 Cocoa 中使用建造者模式的實例 202
11.7 在SportsStore 應用中使用建造者
模式 203
11.7.1 準備示例應用 203
11.7.2 定義建造者類 203
11.7.3 使用建造者類 204
11.8 總結 205
第三部分 結構型模式
第12 章 適配器模式 208
12.1 準備示例項目 208
12.1.1 創建數據源 209
12.1.2 實現示例應用 210
12.2 此模式旨在解決的問題 211
12.3 適配器模式 212
12.4 實現適配器模式 213
12.5 適配器模式之變體 215
12.5.1 定義一個適配器包裝類 215
12.5.2 創建一個雙向適配器 216
12.6 適配器模式的缺陷 219
12.7 Cocoa 中使用適配器模式的實例 219
12.8 在SportsStore 應用中使用適配器
模式 219
12.8.1 準備示例應用 220
12.8.2 定義Adapter 類 220
12.8.3 使用適配功能 221
12.9 總結 222
第13 章 橋接模式 223
13.1 準備示例項目 223
13.2 此模式旨在解決的問題 225
13.3 橋接模式 226
13.4 實現橋接模式 228
13.4.1 實現信息部分 228
13.4.2 實現通道部分 229
13.4.3 創建橋接類 229
13.4.4 增加信息類型與通道類型 230
13.5 橋接模式的變體 233
13.6 橋接模式的陷阱 237
13.7 Cocoa 中使用橋接模式的實例 237
13.8 在SportsStore 應用中使用此模式 237
13.8.1 準備示例應用 237
13.8.2 理解待解決的問題 237
13.8.3 定義橋接類 238
13.9 總結 239
第14 章 裝飾器模式 240
14.1 準備示例項目 240
14.2 此模式旨在解決的問題 242
14.3 裝飾器模式 244
14.4 實現裝飾器模式 244
14.5 裝飾器模式的變體 246
14.5.1 創建具有新功能的裝飾器 246
14.5.2 合并多個裝飾器 249
14.6 裝飾器模式的陷阱 251
14.7 Cocoa 中使用裝飾器模式的實例 251
14.8 在示例項目中使用裝飾器模式 251
14.8.1 準備示例應用 252
14.8.2 創建裝飾器 252
14.8.3 使用裝飾器 253
14.9 總結 253
第15 章 組合模式 254
15.1 準備示例項目 254
15.2 此模式旨在解決的問題 256
15.3 組合模式 257
15.4 實現組合模式 257
15.5 組合模式的陷阱 260
15.6 Cocoa 中使用組合模式的實例 261
15.7 在SportsStore 應用中使用此模式 261
15.7.1 準備示例應用 261
15.7.2 定義組合類 262
15.7.3 使用此模式 263
15.8 總結 264
第16 章 外觀模式 265
16.1 準備示例項目 265
16.2 此模式旨在解決的問題 267
16.3 外觀模式 268
16.4 實現外觀模式 269
16.5 外觀模式之變體 270
16.6 外觀模式的陷阱 271
16.7 Cocoa 中使用外觀模式的實例 272
16.8 在SportsStore 應用中使用外觀模式 273
16.8.1 準備示例應用 273
16.8.2 創建外觀類 274
16.8.3 使用外觀類 274
16.9 總結 275
第17 章 享元模式 276
17.1 準備示例項目 276
17.2 此模式旨在解決的問題 278
17.3 享元模式 278
17.4 實現享元模式 279
17.4.1 創建Flyweight 協議 279
17.4.2 創建FlyweightImplementation
類 280
17.4.3 增加并發保護 281
17.4.4 創建FlyweightFactory 類 282
17.4.5 應用享元模式 284
17.5 享元模式之變體 285
17.6 享元模式的陷阱 286
17.6.1 陷阱一:重復的外部數據 286
17.6.2 陷阱二:可變的外部數據 287
17.6.3 陷阱三:并發訪問 287
17.6.4 陷阱四:過度優化 287
17.6.5 陷阱五:誤用 287
17.7 Cocoa 中使用享元模式的實例 287
17.8 在SportsStore 應用中使用享元模式 288
17.8.1 準備示例應用 289
17.8.2 創建Flyweight 協議和
實現類 289
17.8.3 創建享元工廠 289
17.8.4 應用享元模式 290
17.9 總結 290
第18 章 代理模式 291
18.1 準備示例項目 291
18.2 此模式旨在解決的問題 292
18.2.1 遠程對象問題 292
18.2.2 開銷大的問題 292
18.2.3 訪問控制問題 293
18.3 代理模式 293
18.3.1 解決遠程對象問題 293
18.3.2 解決操作開銷大的問題 294
18.3.3 解決訪問限制問題 294
18.4 實現代理模式 295
18.4.1 實現遠程對象代理 295
18.4.2 實現開銷大的操作的代理 297
18.4.3 實現訪問限制代理 299
18.5 代理模式之變體 302
18.6 代理模式的陷阱 305
18.7 Cocoa 中使用代理模式的實例 306
18.8 在SportsStore 應用中使用代理模式 306
18.8.1 準備示例應用 306
18.8.2 定義協議、工廠方法和
代理類 306
18.8.3 更新ProductDataStore 類 307
18.8.4 發送庫存更新 308
18.9 總結 310
第四部分 行為型模式
第19 章 責任鏈模式 312
19.1 準備示例項目 312
19.2 此模式旨在解決的問題 314
19.3 責任鏈模式 315
19.4 實現責任鏈模式 315
19.4.1 創建并使用責任鏈 317
19.4.2 使用責任鏈模式 318
19.5 責任鏈模式之變體 318
19.5.1 使用工廠方法模式 318
19.5.2 責任鏈響應反饋 319
19.5.3 通知責任鏈中的其他鏈 321
19.6 此模式的陷阱 323
19.7 Cocoa 中使用責任鏈模式的實例 323
19.8 在SportsStore 應用中使用責任鏈
模式 323
19.8.1 準備示例應用 323
19.8.2 定義責任鏈及其鏈 323
19.9 總結 325
第20 章 命令模式 326
20.1 準備示例項目 326
20.2 此模式旨在解決的問題 327
20.3 命令模式 328
20.4 實現命令模式 328
20.4.1 定義Command 協議 329
20.4.2 定義Command 實現類 329
20.4.3 使用命令模式 330
20.4.4 添加并發保護 332
20.4.5 使用撤銷操作的功能 333
20.5 命令模式之變體 333
20.5.1 創建復合命令 334
20.5.2 將命令當作宏來用 335
20.5.3 將閉包作為命令 337
20.6 命令模式的陷阱 339
20.7 Cocoa 中使用命令模式的實例 339
20.8 在SportsStore 應用中使用命令模式 340
20.8.1 準備示例項目 340
20.8.2 實現撤銷功能 340
20.9 總結 343
第21 章 中介者模式 344
21.1 準備示例項目 344
21.2 此模式旨在解決的問題 346
21.3 中介者模式 348
21.4 實現中介者模式 348
21.4.1 定義Meditator 類 349
21.4.2 遵循Peer 協議 349
21.4.3 實現并發保護 351
21.5 中介者模式之變體 353
21.5.1 將更多的邏輯置于中介者中 353
21.5.2 通用化中介者與其管理的對象
之間的關系 355
21.6 中介者模式的陷阱 360
21.7 Cocoa 中使用中介者模式的實例 361
21.8 在SportsStore 應用中使用中介者
模式 363
21.9 總結 363
第22 章 觀察者模式 364
22.1 準備示例項目 364
22.2 此模式旨在解決的問題 366
22.3 觀察者模式 366
22.4 實現觀察者模式 367
22.4.1 創建SubjectBase 類 368
22.4.2 遵循Subject 協議 369
22.4.3 遵循Observer 協議 369
22.4.4 使用觀察者模式 370
22.5 觀察者模式之變體 371
22.5.1 通知的通用化 371
22.5.2 使用弱引用 375
22.5.3 處理生命周期較短的
主題對象 376
22.6 觀察者模式的陷阱 379
22.7 Cocoa 中使用觀察者模式的實例 379
22.7.1 用戶界面事件 379
22.7.2 觀察屬性變化 380
22.8 在SportsStore 應用中使用此模式 381
22.8.1 準備示例應用 381
22.8.2 應用觀察者模式 381
22.9 總結 383
第23 章 備忘錄模式 384
23.1 準備示例項目 384
23.2 此模式旨在解決的問題 386
23.3 備忘錄模式 387
23.4 實現備忘錄模式 388
23.4.1 實現Memento 類 390
23.5 備忘錄模式之變體 390
23.6 備忘錄模式的陷阱 392
23.7 Cocoa 中使用備忘錄模式的實例 393
23.8 在SportsStore 中使用備忘錄模式 396
23.8.1 準備示例項目 396
23.8.2 實現備忘錄模式 396
23.9 總結 398
第24 章 策略模式 399
24.1 準備示例項目 399
24.2 此模式旨在解決的問題 400
24.3 策略模式 401
24.4 實現策略模式 402
24.4.1 定義策略和環境類 402
24.4.2 使用策略模式 403
24.5 策略模式之變體 404
24.6 策略模式的陷阱 405
24.7 Cocoa 中使用策略模式的實例 405
24.7.1 Cocoa 框架中基于協議的
策略 405
24.7.2 Cocoa 中基于選擇器的策略 406
24.8 在SportsStore 應用中使用策略模式 407
24.9 總結 407
第25 章 訪問者模式 408
25.1 準備示例項目 408
25.2 此模式旨在解決的問題 410
25.3 訪問者模式 412
25.4 實現訪問者模式 412
25.4.1 遵循Shape 協議 414
25.4.2 創建訪問者 416
25.4.3 使用訪問者 416
25.5 訪問者模式之變體 417
25.6 訪問模式的陷阱 417
25.7 Cocoa 中使用訪問者模式的實例 417
25.8 在SportsStore 應用中使用訪問者
模式 417
25.9 總結 417
第26 章 模板方法模式 418
26.1 準備示例項目 418
26.2 此模式旨在解決的問題 420
26.3 模板方法模式 420
26.4 實現模板方法模式 420
26.5 模板方法模式之變體 422
26.6 模板方法模式的陷阱 424
26.7 Cocoa 中使用模板方法模式的實例 424
26.8 在SportsStore 應用中使用模板方法
模式 424
26.9 總結 424
第五部分 MVC 模式
第27 章 MVC 模式 426
27.1 準備示例項目 426
27.2 此模式旨在解決的問題 426
27.3 MVC 模式 426
27.4 實現MVC 模式 430
27.4.1 實現通用的代碼 431
27.4.2 定義一個框架 432
27.4.3 創建模型 433
27.4.4 實現視圖 435
27.4.5 定義控制器 436
27.4.6 完善框架 439
27.4.7 運行應用 439
27.4.8 擴展應用 440
27.5 MVC 模式之變體 444
27.6 MVC 模式的陷阱 444
27.7 Cocoa 中使用MVC 模式的實例 444
27.8 總結 444
序: