iOs 单例模式的定义,实现、步骤

    单例模式就是一个类在系统中最多只有一个实例对象,并通过一个全局的入口对这个实例对象进行访问。

    对于共享的资源,实现多个对象去封装是不必要的,不光占用系统资源,还有可能造成冲突,所以一般使用单例模式。

#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;
}

  

原文地址:https://www.cnblogs.com/tang910103/p/5061436.html