Objective-C編程之道:iOS設計模式解析 Objective-C编程之道:iOS设计模式解析

鐘冠賢(Carlo Chung)

立即出貨

買這商品的人也買了...

商品描述

 

<內容簡介>

Carlo Chung的這本《Objective-C編程之道:iOS設計模式解析》是基於iOS的軟件開髮指南。書中應用GoF的經典設計模式,介紹瞭如何在代碼中應用創建型模式、結構型模式和行為模式,如何設計模式以鞏固應用程序,並通過設計模式實例介紹MVC在CocoaTouch框架中的工作方式。《Objective-C編程之道:iOS設計模式解析》適用於那些已經具備Objective-C基礎、想利用設計模式來提高軟件開發效率的中高級iOS開發人員。

 

<章節目錄>

第一部分 設計模式初體驗
第1章 你好,設計模式2
  1.1 這是一本什麼書2
  1.2 開始前的準備2
  1.3 預備知識3
  1.4 似曾相識的設計3
  1.5 設計模式的起源——模型、視圖和控制器4
  1.5.1 在模型對象中封裝數據和基本行為4
  1.5.2 使用視圖對象向用戶展示信息5
  1.5.3 用控制器對象聯繫起模型和視圖5
  1.5.4 作為複合設計模式的MVC5
  1.6 影響設計的幾個問題6
  1.6.1 針對接口編程,而不是針對實現編程7
  1.6.2 @protocol與抽象基類7
  1.6.3 對象組合與類繼承8
  1.7 本書用到的對象和類9
  1.7.1 類圖9
  1.7.2 對象圖12
  1.8 本書如何安排模式的講解13
  1.9 總結13
第2章 案例分析:設計一個應用程序14
  2.1 想法的概念化14
  2.2 界面外觀的設計15
  2.3 架構設計17
  2.3.1 視圖管理18
  2.3.2 如何表現塗鴉20
  2.3.3 如何表現保存的塗鴉圖24
  2.3.4 用戶操作27
  2.4 所用設計模式的回顧32
  2.5 總結33
    第二部分 對象創建
第3章 原型36
  3.1 何為原型模式36
  3.2 何時使用原型模式37
  3.3 淺複製與深複製38
  3.4 使用CocoaTouch框架中的對象複製39
  3.5 為Mark聚合體實現複製方法39
  3.6 將複製的Mark用作「圖樣模板」47
  3.7 總結49
第4章 工廠方法50
  4.1 何為工廠方法模式50
  4.2 何時使用工廠方法51
  4.3 為何這是創建對象的安全方法51
  4.4 在TouchPainter中生成不同畫布51
  4.5 在CocoaTouch框架中應用工廠方法57
  4.6 總結58
第5章 抽象工廠59
  5.1 把抽象工廠應用到TouchPainter應用程序60
  5.2 在CocoaTouch框架中使用抽象工廠66
  5.3 總結68

第6章 生成器69
  6.1 何為生成器模式69
  6.2 何時使用生成器模式70
  6.3 構建追逐遊戲中的角色71
  6.4 總結79
第7章 單例80
  7.1 何為單例模式80
  7.2 何時使用單例模式81
  7.3 在Objective-C中實現單例模式81
  7.4 子類化Singleton85
  7.5 線程安全85
  7.6 在CocoaTouch框架中使用單例模式86
  7.6.1 使用UIApplication類86
  7.6.2 使用UIAccelerometer類86
  7.6.3 使用NSFileManager類86
  7.7 總結87
    第三部分 接口適配
第8章 適配器90
  8.1 何為適配器模式90
  8.2 何時使用適配器模式92
  8.3 委託92
  8.4 用Objective-C協議實現適配器模式93
  8.5 用Objective-C的塊在iOS4中實現適配器模式99
  8.5.1 塊引用的聲明99
  8.5.2 塊的創建100
  8.5.3 把塊用作適配器100
  8.6 總結104
第9章 橋接105
  9.1 何為橋接模式105
  9.2 何時使用橋接模式106
  9.3 創建iOS版虛擬模擬器106
  9.4 總結112
第10章 外觀113
  10.1 何為外觀模式113
  10.2 何時使用外觀模式114
  10.3 為子系統的一組接口提供簡化的接口114
  10.4 在TouchPainter應用程序中使用外觀模式117
  10.5 總結119
    第四部分 對象去耦
第11章 中介者122
  11.1 何為中介者模式122
  11.2 何時使用中介者模式124
  11.3 管理TouchPainter應用程序中的視圖遷移124
  11.3.1 修改遷移邏輯的困難126
  11.3.2 集中管理UI交通127
  11.3.3 在InterfaceBuilder中使用CoordinatingController132
  11.4 總結135
第12章 觀察者136
  12.1 何為觀察者模式136
  12.2 何時使用觀察者模式138

  12.3 在模型-視圖-控制器中使用觀察者模式138
  12.4 在CocoaTouch框架中使用觀察者模式138
  12.4.1 通知139
  12.4.2 鍵-值觀察139
  12.5 在TouchPainter中更新CanvasView上的線條140
  12.6 總結149
    第五部分 抽象集合
第13章 組合152
  13.1 何為組合模式152
  13.2 何時使用組合模式154
  13.3 理解TouchPainter中Mark的使用154
  13.4 在CocoaTouch框架中使用組合模式163
  13.5 總結164
第14章 迭代器165
  14.1 何為迭代器模式165
  14.2 何時使用迭代器模式167
  14.3 在CocoaTouch框架中使用迭代器模式167
  14.3.1 NSEnumerator167
  14.3.2 基於塊的枚舉168
  14.3.3 快速枚舉169
  14.3.4 內部枚舉170
  14.4 遍歷Scribble的頂點170
  14.5 總結178
    第六部分 行為擴展
第15章 訪問者180
  15.1 何為訪問者模式180
  15.2 何時使用訪問者模式182
  15.3 用訪問者繪製TouchPainter中的Mark182
  15.4 訪問者的其他用途189
  15.5 能不能用範疇代替訪問者模式189
  15.6 總結189
第16章 裝飾190
  16.1 何為裝飾模式190
  16.2 何時使用裝飾模式191
  16.3 改變對象的「外表」和「內容」192
  16.4 為UIImage創建圖像濾鏡192
  16.4.1 通過真正的子類實現裝飾193
  16.4.2 通過範疇實現裝飾201
  16.5 總結206
第17章 責任鏈207
  17.1 何為責任鏈模式207
  17.2 何時使用責任鏈模式208
  17.3 在RPG遊戲中使用責任鏈模式209
  17.4 總結214
    第七部分 演算法封裝
第18章 模板方法216
  18.1 何為模板方法模式216
  18.2 何時使用模板方法217
  18.3 利用模板方法製作三明治217
  18.4 保證模板方法正常工作224

  18.5 向模板方法增加額外的步驟225
  18.6 在CocoaTouch框架中使用模板方法228
  18.6.1 UIView類中的定製繪圖228
  18.6.2 CocoaTouch框架中的其他模板方法實現228
  18.7 總結229
第19章 策略230
  19.1 何為策略模式230
  19.2 何時使用策略模式231
  19.3 在UITextField中應用驗證策略231
  19.4 總結239
第20章 命令240
  20.1 何為命令模式240
  20.2 何時使用命令模式241
  20.3 在Cocoa Touch框架中使用命令模式241
  20.3.1 NSInvocation對象242
  20.3.2 NSUndo Manager242
  20.4 在Touch Painter中實現撤銷與恢復243
  20.4.1 使用NSUndo Manager實現繪圖與撤銷繪圖244
  20.4.2 自製繪圖與撤銷繪圖的基礎設施248
  20.4.3 允許用戶觸發撤銷與恢復255
  20.5 命令還能做什麼256
  20.6 總結257
    第八部分 性能與對象訪問
第21章 享元260
  21.1 何為享元模式260
  21.2 何時使用享元模式262
  21.3 創建百花池262
  21.4 總結269
第22章 代理270
  22.1 何為代理模式270
  22.2 何時使用代理模式271
  22.3 用虛擬代理懶加載圖像272
  22.4 在CocoaTouch框架中使用代理模式277
  22.5 總結279
    第九部分 對象狀態
第23章 備忘錄282
  23.1 何為備忘錄模式282
  23.2 何時使用備忘錄模式283
  23.3 在Touch Painter中使用備忘錄模式284
  23.3.1 塗鴉圖的保存284
  23.3.2 塗鴉圖的恢復285
  23.3.3 Scribble Memento的設計與實現286
  23.4 Cocoa Touch框架中的備忘錄模式295
  23.5 總結297