成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS學習基礎 設計模式詳解

移動開發 iOS
本文介紹的iOS學習基礎 設計模式詳解,以圖文的形式來介紹,清晰明了。我們來看內容。

iOS學習基礎 設計模式詳解是本文要介紹的內容,主要介紹在iOS中有一些基本的設計模式,我們先來看內容。

delegation

protocol

model-vew-controller

target-action

notification

declared properties

下面分別介紹一下各個設計模式的用途。

Delegation

這是Apple的權威解釋。

delegation,委托模式(另外有個常用的proxy模式,二者的區別是代理模式一般要更嚴格,實現相同的接口,委托只是引用被委托對象),是簡單的強大的模式,可讓一個對象扮演另外對象的行為。委托對象保持到另外對象的引用,并在適當的時候發消息給另外對象。委托對象可以在發送消息的時候做一些額外的事情。

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

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

iOS學習基礎 設計模式詳解

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

在iOS中也有類似的示例,在創建的項目中,classes目錄中會有xxAppDelegate,這就是委托類。在該委托類實例中,引用了UIWindow和Controller。可以類似上面mac示例控制被引用對象的行為。

Protocol

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

正式的protocol:通過@interface聲明,要求子類實現方法,可以強制實現(@required)或者可選(@optional),正式的protocol是對objc語言的擴展;

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

Model-View-Controller

MVC設計模式大家應該很熟悉了,不多說了。

iOS學習基礎 設計模式詳解

Target-Action

target-action是個設計模式。對象保持必要的信息,當事件發生的時候發送消息給其他對象。所保持的信息有兩部分數據組成:

action selector,定義要調用的方法名稱標識;

target,接收消息的對象。

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

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

iOS學習基礎 設計模式詳解

Notification

一個notification,即一個通知,是一個消息,是用于通知一到多個觀察者對象程序當前有一個事件發生。這里,接收通知的一方叫觀察者,observer。實際上是觀察者模式。

這里,發送通知的對象,并不知道誰會收到這個通知。這樣通知者和觀察者之間松散耦合。

iOS學習基礎 設計模式詳解

Declared property 

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

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

是增強objc語法,簡化編寫代碼的“語法糖”性質的東西。

小結:iOS學習基礎 設計模式詳解的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-07-26 15:29:36

Cocoa 模式

2021-06-29 08:54:23

設計模式代理模式遠程代理

2009-08-18 11:03:31

Observer設計模

2012-07-10 02:01:53

設計模式命令模式

2009-07-10 16:14:29

MVC設計模式Swing

2011-04-21 09:46:41

設計模式

2011-07-07 11:03:07

iOS MVC Objective-

2010-01-21 09:08:53

.NET設計模式

2009-07-09 17:30:59

Singleton模式C++ SingletJava Single

2021-07-21 16:30:38

iOSAPP架構

2023-07-03 07:39:43

Spring框架設計模式

2021-07-29 14:42:55

設計模式Java

2010-02-05 17:00:06

C++單例模式

2010-06-01 12:49:04

SVN分支模式

2024-04-18 00:22:10

設計模式接口代碼

2011-04-29 13:15:16

iOS程序圖標iOS圖標設計iOS

2021-08-04 06:56:49

工廠設計模式

2023-09-22 11:58:49

2011-08-16 14:59:31

IOS開發ViewDidUnloiOS 5

2022-03-15 09:00:00

機器學習軟件開發MLOps
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人天堂999 | 欧美黄色网 | 中文字幕中文字幕 | 成人三级电影 | 欧美日韩成人 | 真人一级毛片 | 成人在线免费观看 | 国产精品久久片 | japanhd美女动| 日本黄色免费视频 | 狠狠色综合久久婷婷 | 成人动漫一区二区 | 天天天操| 久久精品亚洲国产 | 久久精品亚洲精品国产欧美 | 亚洲高清网| 欧美日韩在线一区二区三区 | 一级片网址 | 成人免费xxxxx在线视频 | 久久99国产精品久久99果冻传媒 | 精品久久一 | 精品久久久久国产免费第一页 | 国产区视频在线观看 | 久久久久久一区 | 久久久区| 天天操天天射综合 | 色妞av| 成人性生交大片免费看中文带字幕 | 欧美日韩国产精品一区二区 | 国产精品1 | 男女爱爱福利视频 | 亚洲最大av | 欧美日韩国产一区二区三区 | 婷婷五月色综合 | 在线观看av网站永久 | 成人毛片视频免费 | www狠狠干 | 久久亚洲国产精品 | 精品无码久久久久久久动漫 | 日韩国产黄色片 | 国产精品视频不卡 |