单例模式

  • 单例模式

什么是单例模式

单例模式概念 :
一个类只允许有一个实例,在整个程序中需要多次使用,共享同一份资源的时候,就可以创建单例,一般封装成工具类使用,苹果封装成单例常用的有UIApplication,NSUserDefaults,NSNotificationCenter,NSFIleManager等等

为什么要使用单例模式

单例模式的出现为我们带来了很大的好处,我们可以将那些初始化比较耗费资源的操作用单例来设计,比如在我的项目中用到了蓝牙,而且在不同的界面都有用到,我就把蓝牙的Manager做成了一个单例,这样只有第一次初始化蓝牙模块的时候耗时一点,节省了时间。另外可以利用单例来传值等操作。

怎么使用单例模式

这里贴出一个比较常用的,性能也相对好的单例创建方式

+ (Singleton *)shareInstance{
    static Singleton * _singleton = nil ;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        if (singleton_manager == nil) {
            singleton_manager = [[Singleton alloc] init];
        }
    });
    return (Singleton *)_singleton;
}

单例模式的缺点
1. 单例模式实际上延长了对象的生命周期,那么就存在内存问题,因为这个对象在程序的整个生命都存在。如果使用过多,会导致被占用而无法被释放的情况。
2. 由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值