單例模式(singleton pattern):確定某一個類隻有一個執行個體,而且自行執行個體化并向整個系統提供這個執行個體,這個類稱為單例類,它提供全局通路的方法。單例模式是一種對象建立型模式。
單例模式有三個要點:一是某個類隻能有一個執行個體;二是它必須自行建立這個執行個體;三是它必須自行向整個系統提供這個執行個體。
單例模式是結構最簡單的設計模式一,在它的核心結構中隻包含一個被稱為單例類的特殊類。
@interface pen : nsobject
+ (pen *)sharedpen;
@end
#import "pen.h"
@implementation pen
//寫法一(錯誤)
//+ (pen *)sharedpen
//{
// static pen *pen = nil;
// if (!pen) {
// pen = [[pen alloc]init];
// }
// return pen;
//}
//寫法二
// @synchronized(self)
// {
// if (!pen) {
// pen = [[pen alloc]init];
// }
//寫法三
+ (pen *)sharedpen
{
static pen *pen = nil;
//保證裡面方法值執行一次
static dispatch_once_t oncetoken;
dispatch_once(&oncetoken, ^{
pen = [[pen alloc]init];
});
return pen;
}