標籤:
單例模式就是一個類在系統中最多隻有一個執行個體對象,並通過一個全域的入口對這個執行個體對象進行訪問。
對於共用的資源,實現多個對象去封裝是不必要的,不光佔用系統資源,還有可能造成衝突,所以一般使用單例模式。
#import "DSSingletonObject.h"@implementation DSSingletonObject+ (DSSingletonObject *)defaultObject { static DSSingletonObject *defaultObjectInstance = nil; if (!defaultObjectInstance) defaultObjectInstance = [[super allocWithZone:NULL] init]; return defaultObjectInstance;}+ (id)allocWithZone:(struct _NSZone *)zone { return [self defaultObject];}
@end
#import <Foundation/Foundation.h>@interface DSSingletonObject : NSObject// 寫法一+ (instancetype)defaultObject;// 寫法二:安全執行緒,iOS4之後常用這種+ (DSSingletonObject *)sharedObject;@end
int main(int argc, const char * argv[]){ DSSingletonObject *obj = [DSSingletonObject defaultObject]; NSLog(@"%p", obj); DSSingletonObject *obj2 = [[DSSingletonObject alloc] init]; NSLog(@"%p", obj2); DSSingletonObject *obj3 = [[DSSingletonObject alloc] init]; NSLog(@"%p", obj3); return 0;}
iOs 單例模式的定義,實現、步驟