基本的iOS設(shè)計模式
不管是哪種類型的iOS應(yīng)用程序建立起來,有幾種基本的設(shè)計模式和技術(shù)必須你在敲代碼之前就知道。系統(tǒng)框架是IOS應(yīng)用程序中最重要的基礎(chǔ)設(shè)施,在大多數(shù)情況下,只能依靠系統(tǒng)框架來調(diào)用底部硬件。另一方面,框架也采用了許多特殊的設(shè)計模式,在開發(fā)應(yīng)用程序之前,我們假設(shè)您對這些設(shè)計模式非常熟悉。要了解系統(tǒng)如何支持應(yīng)用程序,首先要了解這些設(shè)計模式,這是非常重要的。
您必須了解的幾種最重要的設(shè)計模式:
Model-View-Controller -----這一設(shè)計模式是IOS流程的主要結(jié)構(gòu):
模型-視圖-控制器(MVC)把你的代碼分成幾個單獨的部分。模型部分定義應(yīng)用程序的數(shù)據(jù)引擎,負(fù)責(zé)維護(hù)數(shù)據(jù)的完整性;視圖部分定義了應(yīng)用程序的用戶界面,但不清楚顯示在操作界面上的數(shù)據(jù)來源;控制器部分充當(dāng)模型和控制器的橋梁,有助于更新數(shù)據(jù)和顯示。
Delegation----該設(shè)計模式有利于將一個對象的數(shù)據(jù)傳輸?shù)搅硪粋€目標(biāo):
委托方式可以在沒有子類化的情況下修改復(fù)雜的對象。與子類化不同的是,你可以像往常一樣使用復(fù)雜的對象,并將修改它們行為的定制代碼放入另一個目標(biāo)中。這個目標(biāo)叫做委托目標(biāo)。復(fù)雜的對象需要在事先定義的時間段上調(diào)用委托對象的方法,這樣才有機會運行定制代碼。
delegation 通過protocol來實現(xiàn)。
Target-action----該設(shè)計模式采用按鍵,等待控件將客戶的交互轉(zhuǎn)化為代碼,使程序能夠執(zhí)行:
控件將用戶的交互通知作為您的應(yīng)用程序,通過目標(biāo)-動作模式。當(dāng)客戶以事先定義的方式(例如,點擊一個按鈕)進(jìn)行交互時,控件會向您指定的目標(biāo)(目標(biāo))發(fā)送消息(動作)。接到動作消息后,目標(biāo)對象會以適當(dāng)?shù)姆绞阶龀龇磻?yīng)(例如,在按下按鈕時更新應(yīng)用程序的狀態(tài))。
Block objects ----使用blocks來完成回調(diào)和異步
Sandboxing---為了保護(hù)其它應(yīng)用程序和系統(tǒng)的安全,所有的iOS應(yīng)用程序都被放置在一個沙盒中。沙盒的結(jié)構(gòu)影響了應(yīng)用程序文件的放置和數(shù)據(jù)的備份。它還會影響其它過程的某些功能。
由于安全原因,iPhone 在文件系統(tǒng)的特定位置上,OS控制每個應(yīng)用程序(包括它的偏好設(shè)置信息和數(shù)據(jù))。這一限制是安全特性的一部分,被稱為應(yīng)用程序的“沙盒”。用于限制應(yīng)用程序?qū)ξ臋n、偏好設(shè)置、網(wǎng)絡(luò)資源、硬件等進(jìn)行瀏覽的粗粒度控制。iPhone 在OS中,應(yīng)用程序及其數(shù)據(jù)停留在一個安全的地方,其他應(yīng)用程序無法瀏覽。安裝應(yīng)用程序后,系統(tǒng)會通過計算獲得一個不透明的標(biāo)志,然后根據(jù)應(yīng)用程序的根目錄和這個標(biāo)志構(gòu)建一條指向應(yīng)用程序家目錄的路徑。所以,應(yīng)用程序的家庭目錄有以下結(jié)構(gòu):
本文僅代表作者觀點,版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請在文中注明來源及作者名字。
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com


