偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解

移動(dòng)開發(fā) iOS
本文介紹的iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解,以圖文的形式來介紹,清晰明了。我們來看內(nèi)容。

iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解是本文要介紹的內(nèi)容,主要介紹在iOS中有一些基本的設(shè)計(jì)模式,我們先來看內(nèi)容。

delegation

protocol

model-vew-controller

target-action

notification

declared properties

下面分別介紹一下各個(gè)設(shè)計(jì)模式的用途。

Delegation

這是Apple的權(quán)威解釋。

delegation,委托模式(另外有個(gè)常用的proxy模式,二者的區(qū)別是代理模式一般要更嚴(yán)格,實(shí)現(xiàn)相同的接口,委托只是引用被委托對(duì)象),是簡單的強(qiáng)大的模式,可讓一個(gè)對(duì)象扮演另外對(duì)象的行為。委托對(duì)象保持到另外對(duì)象的引用,并在適當(dāng)?shù)臅r(shí)候發(fā)消息給另外對(duì)象。委托對(duì)象可以在發(fā)送消息的時(shí)候做一些額外的事情。

在cocoa框架中的委托模式,委托對(duì)象往往是框架中的對(duì)象,被委托對(duì)象是自定義的controller對(duì)象。委托對(duì)象保持一個(gè)到被委托對(duì)象的弱引用。

在該文檔中所舉的例子是mac下開發(fā)的示例。

iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解

這里被委托對(duì)象是NSWindow類的一個(gè)實(shí)例,該類聲明了協(xié)議(protocol),其中有個(gè)方法是windowShouldClose,當(dāng)用戶點(diǎn)擊窗口的關(guān)閉按鈕的時(shí)候,窗口對(duì)象將發(fā)送windowShouldClose消息給代理對(duì)象(windowDelegate),詢問是否確認(rèn)關(guān)閉窗口。代理對(duì)象返回一個(gè)bool值,因此控制了窗口對(duì)象的行為。

在iOS中也有類似的示例,在創(chuàng)建的項(xiàng)目中,classes目錄中會(huì)有xxAppDelegate,這就是委托類。在該委托類實(shí)例中,引用了UIWindow和Controller??梢灶愃粕厦鎚ac示例控制被引用對(duì)象的行為。

Protocol

可以認(rèn)為是java中的接口(interface)。在iOS中有兩種protocol:

正式的protocol:通過@interface聲明,要求子類實(shí)現(xiàn)方法,可以強(qiáng)制實(shí)現(xiàn)(@required)或者可選(@optional),正式的protocol是對(duì)objc語言的擴(kuò)展;

非正式的protocol是NSObject的一個(gè)category,category是objc語言的一個(gè)特性,可以讓你為一個(gè)類增加方法而不需要實(shí)現(xiàn)子類。非正式protocol實(shí)現(xiàn)方法是可選的。在可選的protocol方法未引入objc 2.0以前,非正式的protocol是在foundation和appkit類中實(shí)現(xiàn)委托的基本方式

Model-View-Controller

MVC設(shè)計(jì)模式大家應(yīng)該很熟悉了,不多說了。

iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解

Target-Action

target-action是個(gè)設(shè)計(jì)模式。對(duì)象保持必要的信息,當(dāng)事件發(fā)生的時(shí)候發(fā)送消息給其他對(duì)象。所保持的信息有兩部分?jǐn)?shù)據(jù)組成:

action selector,定義要調(diào)用的方法名稱標(biāo)識(shí);

target,接收消息的對(duì)象。

當(dāng)被稱作action message的事件發(fā)生,將向target發(fā)送action selector定義的方法消息。

target-action模式一般用于自定義的controller按照應(yīng)用規(guī)范定義的方式處理action message。

iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解

Notification

一個(gè)notification,即一個(gè)通知,是一個(gè)消息,是用于通知一到多個(gè)觀察者對(duì)象程序當(dāng)前有一個(gè)事件發(fā)生。這里,接收通知的一方叫觀察者,observer。實(shí)際上是觀察者模式。

這里,發(fā)送通知的對(duì)象,并不知道誰會(huì)收到這個(gè)通知。這樣通知者和觀察者之間松散耦合。

iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解

Declared property 

字面意思是聲明的屬性。比如:

  1. @property (<#attributes#><#type#> <#name#>

是增強(qiáng)objc語法,簡化編寫代碼的“語法糖”性質(zhì)的東西。

小結(jié):iOS學(xué)習(xí)基礎(chǔ) 設(shè)計(jì)模式詳解的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-26 15:29:36

Cocoa 模式

2021-06-29 08:54:23

設(shè)計(jì)模式代理模式遠(yuǎn)程代理

2009-08-18 11:03:31

Observer設(shè)計(jì)模

2012-07-10 02:01:53

設(shè)計(jì)模式命令模式

2011-04-21 09:46:41

設(shè)計(jì)模式

2009-07-10 16:14:29

MVC設(shè)計(jì)模式Swing

2011-07-07 11:03:07

iOS MVC Objective-

2010-01-21 09:08:53

.NET設(shè)計(jì)模式

2021-07-21 16:30:38

iOSAPP架構(gòu)

2009-07-09 17:30:59

Singleton模式C++ SingletJava Single

2023-07-03 07:39:43

Spring框架設(shè)計(jì)模式

2021-07-29 14:42:55

設(shè)計(jì)模式Java

2010-06-01 12:49:04

SVN分支模式

2010-02-05 17:00:06

C++單例模式

2024-04-18 00:22:10

設(shè)計(jì)模式接口代碼

2011-04-29 13:15:16

iOS程序圖標(biāo)iOS圖標(biāo)設(shè)計(jì)iOS

2025-08-01 07:55:56

2021-08-04 06:56:49

工廠設(shè)計(jì)模式

2023-09-22 11:58:49

2011-08-16 14:59:31

IOS開發(fā)ViewDidUnloiOS 5
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)