iOS單例模式總結

2021-08-16 00:04:35 字數 1688 閱讀 8011

單例概述

等。單例模式就是在整個應用或者系統中只能建立乙個唯一的例項,這個例項物件只初始化一次。

單例優缺點

單例模式的優點:

記憶體占用更小,易於跨模組應用,可以靈活修改例項化過程。

單例模式的缺點:

1.2.

如何實現單例模式

可以把要實現單例模式的物件例項建立成乙個靜態變數或者全域性變數,在對單例模式類進行例項化的時候先判斷一下這個例項物件是否存在,如果存在就直接返回,如果不存在就去建立。

當然單例模式只是乙個思想,至於單例的獲取入口都有哪些,嚴格程度如何,可以由開發人員根據需求進行合理安排。

比如如果想在物件拷貝時候使用,那就在nscopying,nsmutablecopying協議中實現,實現單例思想。

如果想更多例項化入口中使用單例就可以重寫allocwithzone方法。(不建議)

singletonutil.h

//

// singletonutil.h

// singletonmodel

//// created by liuyinghui on 2018/3/2.

//#import @inte***ce singletonutil : nsobject

+(instancetype)sharesingletonutil;

@end

singletonutil.m

//

// singletonutil.m

// singletonmodel

//// created by liuyinghui on 2018/3/2.

//#import "singletonutil.h"

static singletonutil * singletonutil=nil;

@inte***ce singletonutil()@end

@implementation singletonutil

+(instancetype)sharesingletonutil

}return singletonutil;

}- (id)copywithzone:(nullable nszone *)zone

- (id)mutablecopywithzone:(nullable nszone *)zone

+ (id) allocwithzone:(nszone *)zone

else return singletonutil;

}return nil;

}@end

singletonutil *util0=[[singletonutil alloc] init];

singletonutil *util1=[singletonutil sharesingletonutil];

singletonutil *util2=[util1 copy];

singletonutil *util3=[util2 mutablecopy];

singletonutil *util4=[singletonutil new];

原始碼鏈結

IOS 單例模式

單例模式顧名思義就是只有乙個例項,它確保乙個類只有乙個例項,並且自行例項化並向整個系統提供這個例項。它經常用來做應用程式級別的共享資源控制。這個模式使用頻率非常高,通過乙個單例類,可以實現在不同視窗之間傳遞資料。在objective c中要實現乙個單例類,至少需要做以下四個步驟 1 為單例物件實現乙...

iOS 單例模式

最近在ios開發中,需要用到單例模式,於是自己動手寫了乙個,它看起來是這樣的 1 id sharedinstance return sharedinstance 後來發現許多書上的做法都使用到了bool變數作為標值位,它看起來是這樣的 2 id sharedinstance return share...

iOS 單例模式

在objective c中要實現乙個單例類,至少需要做以下四個步驟 1 為單例物件實現乙個靜態例項,並初始化,然後設定成nil,2 實現乙個例項構造方法檢查上面宣告的靜態例項是否為nil,如果是則新建並返回乙個本類的例項,3 重寫allocwithzone方法,用來保證其他人直接使用alloc和in...