iOS開發指南 第8章 iOS常用設計模式 學習

來源:互聯網
上載者:User

標籤:

設計模式是在特定情境下對特定問題的解決方案

1 單例模式

   作用:解決“應用中只有一個執行個體”的問題,這個執行個體的作用是全域的,比如說是可以實現一些共用資源 方法的訪問和狀態的保持

   實現原理:一般會封裝一個靜態屬性,並提供靜態執行個體的建立方法。

***********

James Rumbaugh對類的定義是:類是具有相似結構、行為和關係的一組對象的描述符。類是物件導向系統中最重要的構造塊。類圖顯示了一組類、介面、協作以及他們之間的關係。

建立類圖的步驟:(1)研究分析問題領域確定系統需求。(2)確定類,明確類的含義和職責、確定屬性和操作。(3)確定類之間的關係。***********
@synthesize singletonData = _singletonData;初始化static Singleton *sharedManager = nil;+ (Singleton*)sharedManager{    static dispatch_once_t once;GCD提供的結構體,將參數地址傳給函數    dispatch_once(&once, ^{作用是只執行一次代碼塊,還是線程同步的        sharedManager = [[self alloc] init];    });    return sharedManager;}
UIApplication類:+shareApplication                          idleTimerDisabled屬性:設定和獲得“空閑時間禁止”                        -openURL:開啟一些內建的iOS應用*-stringByAddingPercentEscapesUsingEncoding:將字串轉換為URL編碼*2 委託模式  我們需要將看似功能很強但是很難維護的類,按照職責將他的屬性或方法指派到各自的類或分解成功能明確的類。  架構類:通用 可重複使用 與具體應用無關的特點,保持委派物件的指標,並在特定時間像委派物件發送訊息。  相關類:與具體應用有關,由於受到架構類的控制,應用相關類一般被設計成“協議”。  委派物件與通用類建立參考關聯性:通用類執行個體對象.delegate=委派物件  前三步:定義delegate屬性用於儲存委派物件的引用-建立委託協議.h  後三步:聲明實現委託-建立參考關聯性-實現委託方法  委託方法命名:should訊息應該返回一個布爾值,用於確定委託是否會響應訊息                      will/did                      這三種方法都會把發送訊息對象以參數的形式回傳回來3 觀察者模式   MVC模式中的重要組成部分,又叫發布/訂閱模式   1)通知機制        接收者:註冊通知-addObserver:selector:name:object:userInfo:                    解除通知-removeObserver:        投送對象:-postNotificationName:object:userInfo:字典對象                      -postNotification:        一般是程式進行到一個階段時候需要通知其他對象做something   2)KVO機制       在對象屬性變化時直接將通知發送給接收者       屬性變化的對象發送訊息要求觀察者開始觀察屬性變化:addObserver:                                                                                 forKeyPath:屬性                                                                                      options:為屬性變化設定的選項  NSKeyValueObservingOptions類型                                                                                      context:上下文內容  是c語言任何指標類型       觀察者需要重寫:-observeValueForKeyPath:ofObject:change:context:以響應屬性的變化4 MVC   UIViewController是所有控制器的根類  UIView是所有視圖和控制項的根類   因為我們要通過控制器更新視圖和控制項,所以需要將這些視圖定義為輸出口類型的屬性   模型對象可以通過通知機制來通知數據的變化   視圖控制器可以儲存一個模型成員變數或屬性,並通過他們改變模型的狀態。   

iOS開發指南 第8章 iOS常用設計模式 學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.