設計模式 For iOS-02-單例模式.pdf

設計模式 For iOS-02-單例模式.pdf

ID:52645928

大小:601.61 KB

頁數(shù):12頁

時間:2020-03-29

設計模式 For iOS-02-單例模式.pdf_第1頁
設計模式 For iOS-02-單例模式.pdf_第2頁
設計模式 For iOS-02-單例模式.pdf_第3頁
設計模式 For iOS-02-單例模式.pdf_第4頁
設計模式 For iOS-02-單例模式.pdf_第5頁
資源描述:

《設計模式 For iOS-02-單例模式.pdf》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫

1、設計模式ForiOS第02式單例模式整理:BeyondVincent(破船)時間:2013.05.09目錄目錄2第02式單例模式................31.0.簡介...................................................31.0.1.什么是單例模式......................31.0.2.什么時候使用單例模式?......41.1.iOS中單例模式的實現(xiàn)方法............41.2.單例的使用..................

2、.....................91.3.代碼下載地址.................................101.4.參考.................................................11關于設計模式ForiOS的整理.....122第02式單例模式1.0.簡介1.0.1.什么是單例模式單例模式是一個類在系統(tǒng)中只有一個實例對象。通過全局的一個入口點對這個實例對象進行訪問。在iOS開發(fā)中,單例模式是非常有用的一種設計模式。如下圖,是一個簡單單例模式的

3、UML類圖。iOSSDK中也有許多類使用了單例模式,例如,UIApplication:當程序啟動的時候,會調用UIApplicationMain方法,在該方法中,會實例化一個UIApplication對象,之后在程序中的任意地方調用sharedApplication方法都將返回一個與當前應3用程序相關的UIApplication實例(UIApplicationMain方法中創(chuàng)建的UIApplication單例)。1.0.2.什么時候使用單例模式?在程序中,單例模式經(jīng)常用于只希望一個類只有一個實例,而不運行一

4、個類還有兩個以上的實例。當然,在iOSSDK中,根據(jù)特定的需求,有些類不僅提供了單例訪問的接口,還為開發(fā)者提供了實例化一個新的對象接口,例如,NSFileManager可以通過defaultManager方法返回相同的一個NSFileManager對象。如果需要新的一個NSFileManager實例對象,可以通過init方法。1.1.iOS中單例模式的實現(xiàn)方法iOS中單例模式的實現(xiàn)方式一般分為兩種:Non-ARC(非ARC)和ARC+GCD。1)NON-ARC(非ARC)非ARC的實現(xiàn)方法如下所示:BVNo

5、nARCSingleton.h4////BVNonARCSingleton.h//SingletonPattern////CreatedbyBeyondVincenton13-5-9.//Copyright(c)2013年BeyondVincent.Allrightsreserved.//#import<Foundation/Foundation.h>@interfaceBVNonARCSingleton:NSObject@property(nonatomic,retain)NSString*t

6、empProperty;+(BVNonARCSingleton*)sharedInstance;@endBVNonARCSingleton.m////BVNonARCSingleton.m//SingletonPattern////CreatedbyBeyondVincenton13-5-9.//Copyright(c)2013年BeyondVincent.Allrightsreserved.//#import"BVNonARCSingleton.h"@implementationBVNonARCSingl

7、etonstaticBVNonARCSingleton*sharedInstance=nil;//獲取一個sharedInstance實例,如果有必要的話,實例化一個+(BVNonARCSingleton*)sharedInstance{if(sharedInstance==nil){sharedInstance=[[superallocWithZone:NULL]init];}returnsharedInstance;}//當?shù)谝淮问褂眠@個單例時,會調用這個init方法。-(id)init{self=[s

8、uperinit];if(self){//通常在這里做一些相關的初始化任務5}returnself;}//這個dealloc方法永遠都不會被調用--因為在程序的生命周期內容,該單例一直都存在。(所以該方法可以不用實現(xiàn))-(void)dealloc{[superdealloc];}//通過返回當前的sharedInstance實例,就能防止實例化一個新的對象。+(id)allocWithZone:(NSZone*)

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。