出版時間:2011-11 出版社:人民郵電 作者:鐘冠賢 譯者:劉威
Tag標(biāo)簽:無
內(nèi)容概要
本書是基于iOS 的軟件開發(fā)指南。書中應(yīng)用GoF
的經(jīng)典設(shè)計模式,介紹了如何在代碼中應(yīng)用創(chuàng)建型模式、結(jié)構(gòu)型模式和行為模式,如何設(shè)計模式以鞏固應(yīng)用程序,并通過設(shè)計模式實例介紹MVC
在CocoaTouch 框架中的工作方式。
本書適用于那些已經(jīng)具備Objective-C 基礎(chǔ)、想利用設(shè)計模式來提高軟件開發(fā)效率的中高級iOS 開發(fā)人員。
蘋 果公司的App
Store擁有超過20萬個應(yīng)用(每秒都在增加)供用戶選擇,正深刻地改變著軟件行業(yè)。每天都有更多的iOS開發(fā)者想投入到這一潮流,希望憑藉下一個殺手級應(yīng)用發(fā)家致富。本書的目標(biāo)正是帶領(lǐng)讀者完成從新手到高手的轉(zhuǎn)變,關(guān)注底層的設(shè)計模式而非一味只顧著寫代碼,從而開發(fā)出更加高效、實用和專業(yè)的應(yīng)用。
iOS 應(yīng)用程序的基礎(chǔ)Cocoa
Touch框架內(nèi)容豐富、結(jié)構(gòu)優(yōu)美,通過將各種設(shè)計模式應(yīng)用到其基礎(chǔ)結(jié)構(gòu)中,為第三方開發(fā)者提供了很好的可擴(kuò)展性和靈活性。因此,要充分利用這一框架,應(yīng)當(dāng)深刻理解并恰當(dāng)應(yīng)用設(shè)計模式。本書受到GoF的經(jīng)典著作《設(shè)計模式》的啟發(fā),旨在引導(dǎo)大家掌握如何在iOS平臺上以O(shè)bjective-C語言實現(xiàn)
Cocoa Touch開發(fā)所要用到的傳統(tǒng)設(shè)計模式。
在編寫代碼的過程中,你可能在一定程度上運(yùn)用了一些設(shè)計模式,只是并沒有意識到或充分利用它們?;诖?,本書深入解析了這些設(shè)計模式。特定模式方法的實現(xiàn)將向iOS應(yīng)用開發(fā)人員展示其非凡價值。你將掌握單例、抽象工廠、責(zé)任鏈和觀察者等經(jīng)典模式,還會發(fā)現(xiàn)一些不太知名但非常有用的模式,比如備忘錄、組合、命令和中介者等。
學(xué)完本書,你將學(xué)會:
?各種設(shè)計模式的基本概念;
?根據(jù)不同場景,將設(shè)計模式應(yīng)用于代碼中;
?用設(shè)計模式來改進(jìn)應(yīng)用程序;
?提高軟件開發(fā)的效率。
作者簡介
Carlo
Chung(鐘冠賢)計算機(jī)科學(xué)家,喜歡擺弄機(jī)器、愛好攝影。他擁有計算機(jī)科學(xué)碩士學(xué)位,專業(yè)方向是計算機(jī)視覺(人工智能的分支)。把人工智能與任何小裝置結(jié)合起來的想法都能令他興奮不已。他常常夢想著讓iPhone變得更智能、更像人,曾把計算機(jī)視覺的知識應(yīng)用到iPhone平臺并開發(fā)了幾個應(yīng)用,有兩個被作為特色應(yīng)用出現(xiàn)在App
Store首頁,其中有一個還被列為攝影類別中的最佳付費(fèi)應(yīng)用(Top Paid)。
譯者簡介:
劉威
2001年畢業(yè)于中國科學(xué)院研究生院。熱愛計算機(jī)科學(xué),喜歡編程,尤其喜歡寫程序解決實際問題。從2000年起從事軟件開發(fā)工作,最近幾年一直專注于手機(jī)軟件開發(fā),目前從事Android和iOS軟件開發(fā)。新浪微博:@劉威-LiuWei。
書籍目錄
第一部分 設(shè)計模式初體驗
第1章 你好,設(shè)計模式
1.1 這是一本什么書
1.2 開始前的準(zhǔn)備
1.3 預(yù)備知識
1.4 似曾相識的設(shè)計
1.5 設(shè)計模式的起源——模型、視圖和控制器
1.5.1 在模型對象中封裝數(shù)據(jù)和基本行為
1.5.2 使用視圖對象向用戶展示信息
1.5.3 用控制器對象聯(lián)系起模型和視圖
1.5.4 作為復(fù)合設(shè)計模式的MVC
1.6 影響設(shè)計的幾個問題
1.6.1 針對接口編程,而不是針對實現(xiàn)編程
1.6.2 @protocol 與抽象基類
1.6.3 對象組合與類繼承
1.7 本書用到的對象和類
1.7.1 類圖
1.7.2 對象圖
1.8 本書如何安排模式的講解
1.9 總結(jié)
第2章 案例分析:設(shè)計一個應(yīng)用程序
2.1 想法的概念化
2.2 界面外觀的設(shè)計
2.3 架構(gòu)設(shè)計
2.3.1 視圖管理
2.3.2 如何表現(xiàn)涂鴉
2.3.3 如何表現(xiàn)保存的涂鴉圖
2.3.4 用戶操作
2.4 所用設(shè)計模式的回顧
2.5 總結(jié)
第二部分 對象創(chuàng)建第3章 原型
3.1 何為原型模式
3.2 何時使用原型模式
3.3 淺復(fù)制與深復(fù)制
3.4 使用Cocoa Touch 框架中的對象復(fù)制
3.5 為Mark 聚合體實現(xiàn)復(fù)制方法
3.6 將復(fù)制的Mark 用作“圖樣模板”
3.7 總結(jié)
第4章 工廠方法
4.1 何為工廠方法模式
4.2 何時使用工廠方法
4.3 為何這是創(chuàng)建對象的安全方法
4.4 在TouchPainter 中生成不同畫布
4.5 在Cocoa Touch 框架中應(yīng)用工廠方法
4.6 總結(jié)
第5章 抽象工廠
5.1 把抽象工廠應(yīng)用到TouchPainter應(yīng)用程序
5.2 在Cocoa Touch 框架中使用抽象工廠
5.3 總結(jié)
第6章 生成器
6.1 何為生成器模式
6.2 何時使用生成器模式
6.3 構(gòu)建追逐游戲中的角色
6.4 總結(jié)
第7章 單例
7.1 何為單例模式
7.2 何時使用單例模式
7.3 在Objective-C 中實現(xiàn)單例模式
7.4 子類化Singleton
7.5 線程安全
7.6 在Cocoa Touch 框架中使用單例模式
7.6.1 使用UIApplication 類
7.6.2 使用UIAccelerometer 類
7.6.3 使用NSFileManager 類
7.7 總結(jié)
第三部分 接口適配
第8章 適配器
8.1 何為適配器模式
8.2 何時使用適配器模式
8.3 委托
8.4 用Objective-C 協(xié)議實現(xiàn)適配器模式
8.5 用Objective-C 的塊在iOS 4 中實現(xiàn)適配器模式
8.5.1 塊引用的聲明
8.5.2 塊的創(chuàng)建
8.5.3 把塊用作適配器
8.6 總結(jié)
第9章 橋接
9.1 何為橋接模式
9.2 何時使用橋接模式
9.3 創(chuàng)建iOS 版虛擬仿真器
9.4 總結(jié)
第10章 外觀
10.1 何為外觀模式
10.2 何時使用外觀模式
10.3 為子系統(tǒng)的一組接口提供簡化的接口
10.4 在TouchPainter 應(yīng)用程序中使用外觀模式
10.5 總結(jié)
第四部分 對象去耦
第11章 中介者
11.1 何為中介者模式
11.2 何時使用中介者模式
11.3 管理TouchPainter 應(yīng)用程序中的視圖遷移
11.3.1 修改遷移邏輯的困難
11.3.2 集中管理UI 交通
11.3.3 在Interface Builder 中使用CoordinatingController
11.4 總結(jié)
第12章 觀察者
12.1 何為觀察者模式
12.2 何時使用觀察者模式
12.3 在模型?視圖?控制器中使用觀察者模式
12.4 在Cocoa Touch 框架中使用觀察者模式
12.4.1 通知
12.4.2 鍵?值觀察
12.5 在TouchPainter 中更新CanvasView上的線條
12.6 總結(jié)
第五部分 抽象集合
第13章 組合
13.1 何為組合模式
13.2 何時使用組合模式
13.3 理解TouchPainter 中Mark 的使用
13.4 在Cocoa Touch 框架中使用組合模式
13.5 總結(jié)
第14章 迭代器
14.1 何為迭代器模式
14.2 何時使用迭代器模式
14.3 在Cocoa Touch 框架中使用迭代器模式
14.3.1 NSEnumerator
14.3.2 基于塊的枚舉
14.3.3 快速枚舉
14.3.4 內(nèi)部枚舉
14.4 遍歷Scribble 的頂點
14.5 總結(jié)
第六部分 行為擴(kuò)展
第15章 訪問者
15.1 何為訪問者模式
15.2 何時使用訪問者模式
15.3 用訪問者繪制TouchPainter 中的Mark
15.4 訪問者的其他用途
15.5 能不能用范疇代替訪問者模式
15.6 總結(jié)
第16章 裝飾
16.1 何為裝飾模式
16.2 何時使用裝飾模式
16.3 改變對象的“外表”和“內(nèi)容”
16.4 為UIImage 創(chuàng)建圖像濾鏡
16.4.1 通過真正的子類實現(xiàn)裝飾
16.4.2 通過范疇實現(xiàn)裝飾
16.5 總結(jié)
第17章 責(zé)任鏈
17.1 何為責(zé)任鏈模式
17.2 何時使用責(zé)任鏈模式
17.3 在RPG 游戲中使用責(zé)任鏈模式
17.4 總結(jié)
第七部分 算法封裝
第18章 模板方法
18.1 何為模板方法模式
18.2 何時使用模板方法
18.3 利用模板方法制作三明治
18.4 保證模板方法正常工作
18.5 向模板方法增加額外的步驟
18.6 在Cocoa Touch 框架中使用模板方法
18.6.1 UIView 類中的定制繪圖
18.6.2 Cocoa Touch 框架中的其他模板方法實現(xiàn)
18.7 總結(jié)
第19章 策略
19.1 何為策略模式
19.2 何時使用策略模式
19.3 在UITextField 中應(yīng)用驗證策略
19.4 總結(jié)
第20章 命令
20.1 何為命令模式
20.2 何時使用命令模式
20.3 在Cocoa Touch 框架中使用命令模式
20.3.1 NSInvocation 對象
20.3.2 NSUndoManager
20.4 在TouchPainter 中實現(xiàn)撤銷與恢復(fù)
20.4.1 使用NSUndoManager 實現(xiàn)繪圖與撤銷繪圖
20.4.2 自制繪圖與撤銷繪圖的基礎(chǔ)設(shè)施
20.4.3 允許用戶觸發(fā)撤銷與恢復(fù)
20.5 命令還能做什么
20.6 總結(jié)
第八部分 性能與對象訪問
第21章 享元
21.1 何為享元模式
21.2 何時使用享元模式
21.3 創(chuàng)建百花池
21.4 總結(jié)
第22章 代理
22.1 何為代理模式
22.2 何時使用代理模式
22.3 用虛擬代理懶加載圖像
22.4 在Cocoa Touch 框架中使用代理模式
22.5 總結(jié)
第九部分 對象狀態(tài)
第23章 備忘錄
23.1 何為備忘錄模式
23.2 何時使用備忘錄模式
23.3 在TouchPainter 中使用備忘錄模式
23.3.1 涂鴉圖的保存
23.3.2 涂鴉圖的恢復(fù)
23.3.3 ScribbleMemento 的設(shè)計與實現(xiàn)
23.4 Cocoa Touch 框架中的備忘錄模式
23.5 總結(jié)
章節(jié)摘錄
版權(quán)頁:插圖:生成器選擇建造自己的房子的人會把工程外包給承包商。單一承包商不能建造整個房子,他將其分解為幾個部分,然后轉(zhuǎn)包給幾個實際的建筑商(builder),他們懂得如何將零部件組裝起來。房子由風(fēng)格、顏色和尺寸各不相同的部件組成。客戶告訴承包商房子里都要有什么,然后承包商協(xié)調(diào)各房屋建筑商,決定需要做什么。應(yīng)該如何建造,建筑商就如何施工。建房子是個復(fù)雜過程,單憑一雙手就想建房子,即便可能也非常困難。如果承包商(指導(dǎo)者)與懂得如何建造的建筑商相互協(xié)調(diào),這一過程將簡單得多且更易管理。有時,構(gòu)建某些對象有多種不同方式。如果這些邏輯包含在構(gòu)建這些對象的類的單一方法中,構(gòu)建的邏輯會非?;奶疲ɡ?,針對各種構(gòu)建需求的一大片嵌套if-else或者switch-case語句)。如果能夠把構(gòu)建過程分解為客戶一指導(dǎo)者一生成器的關(guān)系,那么過程將更容易管理與復(fù)用。針對此類關(guān)系的設(shè)計模式稱為生成器。本章將討論生成器模式的概念。后面幾節(jié),也會討論如何使用這一模式來生成RPG游戲中帶有復(fù)雜特征的角色。6.1 何為生成器模式除了客戶與其所要的產(chǎn)品,生成器模式還包含兩個重要角色:Director(指導(dǎo)者)和Builder(生成器)。Builder知道究竟如何在缺少某些特定信息的情況下建造產(chǎn)品(什么)。Director知道Builder應(yīng)該建造什么,以參數(shù)向其提供缺少的信息來建造特定產(chǎn)品。什么與如何有點兒難懂。盡管Director知道Builder應(yīng)該建造什么,這并不意味著Director知道具體Builder究竟是什么。它們的靜態(tài)關(guān)系如圖6-1中的類圖所示。Builder是一個抽象接口,聲明了一個buildpart方法,該builder方法由CorlcreteBuilder實現(xiàn),以構(gòu)造實際產(chǎn)品(Product)。
媒體關(guān)注與評論
“每學(xué)習(xí)一門新的編程語言。我都會去買一本介紹其設(shè)計模式的書。這些書從來沒有讓我失望過。從長遠(yuǎn)來看,我獲得的回報十倍于我的付出,本書也不例外。作者首先介紹每一種設(shè)計模式的理論和方法。然后給出代碼示例。簡單地講,本書結(jié)構(gòu)清晰,易于理解。物超所值?!薄 獊嗰R遜讀者評論“這是一本啟人深思的書。在學(xué)習(xí)如何將設(shè)計模式應(yīng)用于復(fù)雜的lOS應(yīng)用的同時,我開始靜下來思考怎樣優(yōu)化既有代碼。向每一位中高級iOS開發(fā)人員推薦本書?!薄 獊嗰R遜讀者評論
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載