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

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

Objective-C編程之道:iOS設計模式解析是由美國人Carlo Chung所著,人民郵電出版社出版的關於編程設計的書籍。

內容簡介

《Objective-C編程之道:iOS設計模式解析》是基於iOS的軟體開發指南。書中套用GoF的經典設計模式,介紹了如何在代碼中套用創建型模式、結構型模式和行為模式,如何設計模式以鞏固應用程式,並通過設計模式實例介紹MVC在CocoaTouch框架中的工作方式。

目錄

第一部分 設計模式初體驗

第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 作為複合設計模式的MVC 5

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 使用Cocoa Touch框架中的對象複製 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 在Cocoa Touch框架中套用工廠方法 57

4.6 總結 58

第5章 抽象工廠 59

5.1 把抽象工廠套用到TouchPainter應用程式 60

5.2 在Cocoa Touch框架中使用抽象工廠 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 子類化Singleton 85

7.5 執行緒安全 85

7.6 在Cocoa Touch框架中使用單例模式 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的塊在iOS 4中實現適配器模式 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 在Interface Builder中使用CoordinatingController 132

11.4 總結 135

第12章 觀察者 136

12.1 何為觀察者模式 136

12.2 何時使用觀察者模式 138

12.3 在模型-視圖-控制器中使用觀察者模式 138

12.4 在Cocoa Touch框架中使用觀察者模式 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 在Cocoa Touch框架中使用組合模式 163

13.5 總結 164

第14章 疊代器 165

14.1 何為疊代器模式 165

14.2 何時使用疊代器模式 167

14.3 在Cocoa Touch框架中使用疊代器模式 167

14.3.1 NSEnumerator 167

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中的Mark 182

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 在Cocoa Touch框架中使用模板方法 228

18.6.1 UIView類中的定製繪圖 228

18.6.2 Cocoa Touch框架中的其他模板方法實現 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 NSUndoManager 242

20.4 在TouchPainter中實現撤銷與恢復 243

20.4.1 使用NSUndoManager實現繪圖與撤銷繪圖 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 在Cocoa Touch框架中使用代理模式 277

22.5 總結 279

第九部分 對象狀態

第23章 備忘錄 282

23.1 何為備忘錄模式 282

23.2 何時使用備忘錄模式 283

23.3 在TouchPainter中使用備忘錄模式 284

23.3.1 塗鴉圖的保存 284

23.3.2 塗鴉圖的恢復 285

23.3.3 ScribbleMemento的設計與實現 286

23.4 Cocoa Touch框架中的備忘錄模式 295

23.5 總結 297

相關搜尋

熱門詞條

聯絡我們