IOS常用的設計模式包括:單例模式、委托模式、觀察者模式和MVC模式。
這裡主要講單例模式
單例模式
-問題: 主要解決應用中只有一個實例的問題(只需要某個類的實例)
-原理:一般會封裝一個靜態屬性,並提供靜態實例的創建方法
-應用:單例類
// Singleton.h @interface Singleton : NSObject + (Singleton *)sharedManager; @property (nonatomic, strong) NSString* stingletonData; @end
#import "Singleton.h"
@implementation Singleton
@synthesize SingletonData = _singletonData;
static Singleton *sharedManager = nil;
+ (Singleton *)sharedManager
{
static dispatch_once_t once;
static dispatch_once_t onceToken;
dispatch_once(&once, ^{
shardManager = [[self alloc] init];
});
return shardManager;
}
@end
包含了一個靜態變量singletonData, 類方法采用了GCD技術(基於C語言的多線程訪問技術),它的作用時在整個應用程序生命周期中只執行一次代碼塊({})。dispatch_once_t是GCD的結構體,使用時需要傳遞一個指針。
dispatch_once函數能保證函數只會被運行一次,還意味著運行是線程同步的。