iOS 設計模式之單例模式
如果覺得我寫的還不錯,請關注我的新浪微博@小橘爺,最新文章即時推送~
單例模式
單例模式的作用是解決“應用中只有一個例項”的一類問題。
Objective-C 實現原理
單例模式一般會封裝一個靜態屬性,並提供靜態例項的建立方法。
實現的參考程式碼如下:
@interface Singleton : NSObject
// 獲取單例的方法
+ (Singleton *)sharedManager;
@end
#import "Singleton.h"
@implementation
// 建立靜態變數
static Singleton *sharedManager = nil;
+ (Singleton *)sharedManager
{
// GCD 提供的結構體,使用時將它的地址傳給 dispatch_once 函式
static dispatch_once_t onceToken;
// dispatch_once 函式,作用是在整個程式的生命週期中只執行一次程式碼塊,並且它能夠記錄該程式碼塊是否被呼叫過
dispatch_once(&onceToken, ^{
sharedManager = [[self alloc] init];
}];
return sharedManager;
}
@end
具體的實現大體就是這些了。其中,dispatch_once 函式不僅意味著程式碼僅會被執行一次,而且還意味著此執行還是執行緒同步的。當我們使用了 dispatch_once 函式時,就不再需要使用互斥鎖(@synchronized)了~
相關文章
- 設計模式之單例模式設計模式單例
- 設計模式之---單例模式設計模式單例
- 設計模式之☞單例模式設計模式單例
- 設計模式之單例設計模式設計模式單例
- 01 設計模式之單例模式設計模式單例
- js設計模式之單例模式JS設計模式單例
- Javascript 設計模式之單例模式JavaScript設計模式單例
- PHP 設計模式之單例模式PHP設計模式單例
- PHP設計模式之單例模式PHP設計模式單例
- Java設計模式之單例模式Java設計模式單例
- 設計模式(一)之單例模式設計模式單例
- Javascript設計模式之單例模式JavaScript設計模式單例
- PHP 設計模式之——單例模式PHP設計模式單例
- golang設計模式之單例模式Golang設計模式單例
- Android設計模式之單例模式Android設計模式單例
- 設計模式之單例設計模式單例
- Java設計模式系列之單例設計模式Java設計模式單例
- 設計模式開門之單例模式設計模式單例
- 設計模式之單例模式(Singleton Pattern)設計模式單例
- 設計模式之單例模式詳解設計模式單例
- 理解設計模式之單例模式(Javascript)設計模式單例JavaScript
- 設計模式學習之單例模式設計模式單例
- C#設計模式之單例模式C#設計模式單例
- Kotlin 設計模式系列之單例模式Kotlin設計模式單例
- 設計模式 單例模式設計模式單例
- 設計模式——單例模式設計模式單例
- [設計模式] 單例模式設計模式單例
- 設計模式-單例模式設計模式單例
- 設計模式 —— 單例模式設計模式單例
- 設計模式(單例模式)設計模式單例
- Golang 常見設計模式之單例模式Golang設計模式單例
- 折騰Java設計模式之單例模式Java設計模式單例
- 設計模式(一)建立型之單例模式設計模式單例
- 【php實現設計模式】之單例模式PHP設計模式單例
- 嘻哈說:設計模式之單例模式設計模式單例
- 設計模式(三)----建立型模式之單例模式(一)設計模式單例
- 淺談23種設計模式之單例設計模式設計模式單例
- 設計模式-單例模式、多例模式設計模式單例
- 每天一個設計模式之單例模式設計模式單例