使用設(shè)計模式

2018-08-12 21:55 更新

使用設(shè)計模式

設(shè)計模式可以解決常見的軟件工程問題。模式是抽象設(shè)計,而非代碼。采用一種設(shè)計,就是應(yīng)用它的通用模式來滿足您的特定需求。不管是創(chuàng)建哪種類型的應(yīng)用程序,最好能先了解框架中使用的基本設(shè)計模式。了解設(shè)計模式有助于更高效地使用框架,并且可讓您編寫的程序復(fù)用程度更高、擴展能力更強和更容易修改。

MVC

對于任何 iOS 應(yīng)用程序而言,模型-視圖-控制器 (MVC) 都是一個優(yōu)秀設(shè)計的關(guān)鍵所在。MVC 會將應(yīng)用程序中的對象分配給以下三種角色中的一種:模型、視圖或者控制器。在這種模式中,模型會記錄應(yīng)用程序的數(shù)據(jù),視圖會顯示用戶界面并構(gòu)成應(yīng)用程序的內(nèi)容,而控制器則會管理您的視圖。通過響應(yīng)用戶的操作并使用內(nèi)容填充視圖,控制器充當(dāng)了模型和視圖二者之間通信的通道。

在構(gòu)建 ToDoList 應(yīng)用程序的過程中,您遵循的就是以 MVC 為中心的設(shè)計模式。在串聯(lián)圖中構(gòu)建的界面組成了視圖層 XYZAddToDoItemViewController 和 XYZToDoListViewController 就是管理視圖的控制器。在添加數(shù)據(jù)中,您需要結(jié)合數(shù)據(jù)模型來處理應(yīng)用程序中的視圖和控制器。在開始設(shè)計自己的應(yīng)用程序時,很重要的一點就是以 MVC 為中心進行設(shè)計。

目標(biāo)-操作

目標(biāo)-操作從概念上講是一個簡單的設(shè)計:特定事件發(fā)生時,一個對象會向另一個對象發(fā)送信息。操作信息就是在源代碼中定義的選擇器,而目標(biāo)(即接收信息的對象)則是能夠執(zhí)行該操作的對象(通常為視圖控制器)。發(fā)送操作信息的對象通常為控制,例如按鈕、滑塊或開關(guān),它能夠觸發(fā)事件對用戶的交互操作(例如輕按、拖移或者值更改)作出響應(yīng)。

例如,假設(shè)您想要在每次用戶輕按“恢復(fù)默認”按鈕(在用戶界面中創(chuàng)建)時恢復(fù)應(yīng)用程序中的默認設(shè)置。首先,您需要實施操作 restoreDefaults: 來執(zhí)行恢復(fù)默認設(shè)置的邏輯。接著,注冊按鈕的 Touch Up Inside 事件,將 restoreDefaults: 操作方法發(fā)送到實施該方法的視圖控制器。

在 ToDoList 應(yīng)用程序中,您已經(jīng)使用過目標(biāo)-操作模式。當(dāng)用戶輕按 XYZAddToDoItemViewController 中的“完成”按鈕時,會觸發(fā) unwindToList: 操作。在這種情況下,“完成”按鈕是發(fā)送信息的對象,目標(biāo)對象是 XYZToDoListViewController,操作信息是 unwindToList:,而觸發(fā)操作信息被發(fā)送的事件則是用戶輕按“完成”按鈕這一操作。目標(biāo)-操作是定義交互以及在應(yīng)用程序各部分之間發(fā)送信息的強大機制。

委托

委托是一種簡單而強大的模式。在此模式中,應(yīng)用程序中的一個對象代表另一個對象,或與另一個對象協(xié)調(diào)工作。授權(quán)對象保留對另一個對象(委托對象)的引用,并適時向委托對象發(fā)送信息。該信息會告訴事件的委托對象,授權(quán)對象即將處理或剛處理了某個事件。委托對象可能會對該信息作出如下響應(yīng):更新其本身或應(yīng)用程序中其他對象的外觀或狀態(tài),在某些情況下,它會返回一個值來反映待處理的事件該如何處理。

委托模式不僅普遍用于既有的框架類,而且也可應(yīng)用在應(yīng)用程序的兩個自定對象之間。常見的設(shè)計是將委托作為一種手段,允許子視圖控制器將某些值(通常為用戶輸入的值)傳達到父視圖控制器。

目前您還沒有使用過委托,但是在“教程:添加數(shù)據(jù)”中,當(dāng)您將其他行為添加到 XYZToDoListViewController 類時,這就是委托的示例。

在 iOS 應(yīng)用程序的開發(fā)過程中,會經(jīng)常遇到一些較為常見的設(shè)計模式,但它們只是冰山一角。隨著對 Objective-C 學(xué)習(xí)的深入,您還會發(fā)現(xiàn)其他可在應(yīng)用程序中使用的設(shè)計模式。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號