创建型之五-单例模式

2017-10-10  本文已影响4人  iOS_肖晨

Singleton(单例模式)

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

单利的优缺点:
优点
1、提供了对唯一实例的受控访问。
2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
3.因为单例模式的类控制了实例化的过程,所以类可以更加灵活修改实例化过程。
缺点
1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。
2、单例类的职责过重,在一定程度上违背了“单一职责原则”。

VC.m

HCDSingleton *singleton = [HCDSingleton sharedInstance];

HCDSingleton.h

@interface HCDSingleton : NSObject
+(instancetype)sharedInstance;
@end

HCDSingleton.m

static HCDSingleton *singleton = nil;
@implementation HCDSingleton
+(instancetype)sharedInstance{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        singleton = [[HCDSingleton alloc]init];
    });
    return singleton;
}
+ (instancetype)allocWithZone:(struct _NSZone *)zone {
    if (singleton == nil) {
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            singleton = [super allocWithZone:zone];
        });
    }
    return singleton;
}
@end

设计图

上一篇 下一篇

猜你喜欢

热点阅读