在iOS,系統框架為應用程序提供了最重要的基礎設施,在大多數情況下,只能通過系統框架來調用底層的硬件。反過來,框架也使用了很多特別的設計模式,iOS開發應用程序前,必須要了解它的六大基本設計模式。
(1)Model-View-Controller,即模型-視圖-控制器模式,是iOS程序的主要構架,將您的代碼分割為幾個獨立的部分。模型部分定義應用程序的數據引擎,負責維護數據的完整性;視圖部分定義應用程序的用戶界面,對顯示在用戶界面上的數據出處則沒有清楚的認識;控制器部分則充當模型和控制器的橋梁,幫助實現數據和顯示的更新。
(2)Delegation,即委托模式,這個設計模式有助於一個對象的數據傳輸到另一個對象。委托模式可以對復雜對象進行修改而不需要子類化。與子類化不同的是,您可以照常使用復雜對象,而將對其行為進行修改的定制代碼放在另一個對象中,這個對象就稱為委托對象。復雜對象需要在預先定義好的時點上調用委托對象的方法,使其有機會運行定制代碼。
(3)Target-action,這個設計模式用按鈕等控件把用戶的交互變成代碼,讓程序可以執行。控件通過目標—動作模式將用戶的交互通知給您的應用程序。當用戶以預先定義好的方式(比如輕點一個按鍵)進行交互時,控件就會將消息(動作)發送給您指定的對象(目標)。接收到動作消息後,目標對象就會以恰當的方式進行響應。
(4)Protocol,可以認為是java中的接口。在iOS中有兩種protocol。一種是正式的,一種是非正式的。正式的protocol,是對objc語言的擴展。通過interface聲明,可以強制實現或者可選實現。非正式的protocol是NSObject的一個category,category是objc語言的一個特性,可以讓你為一個類增加方法而不需要實現子類。非正式protocol實現方法是可選的。
(5)notification,即一個通知,是一個消息,是用於通知一到多個觀察者對象程序當前有一個事件發生。這裡,接收通知的一方叫觀察者,observer。實際上是觀察者模式。 這裡,發送通知的對象,並不知道誰會收到這個通知。這樣通知者和觀察者之間松散耦合。
(6)declared properties,字面意思是聲明的屬性。自動幫添加get、set方法。