创建型之五-单例模式

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

设计图

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容