美文网首页
iOS设计模式-单例模式

iOS设计模式-单例模式

作者: Tel_小超 | 来源:发表于2023-04-24 19:51 被阅读0次

    单例模式

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

    单例模式

    何时使用单例模式

    • 类只能有一个实例,而且必须从一个为人熟知的访问点对其进行访问,比如工厂方法。
    • 这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码。

    单例的优缺点

    单例的优点(主要优点)

    • 实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本,从而确保所有对象都访问唯一实例
    • 因为其上面的特点,对于项目中的个别场景的传值,存储状态等等更加方便

    单例的缺点(主要缺点)

    • 单例实例一旦创建,对象指针是保存在静态区的,那么在堆区分配空间只有在应用程序终止后才会被释放(特殊处理除外)
    • 单例不能继承

    在Objective-C中实现单例模式

    不考虑线程安全的单例模式

    static SingleCase *manager = nil;    
         
    + (SingleCase *)defaultManager {    
        if (!manager){   
            SingleCase = [[self alloc] init];    
            return manager;   
            }  
    } 
    

    线程安全的单例模式

    + (SingleCase *)sharedManager    
    {    
            static SingleCase *ManagerInstance = nil;    
            static dispatch_once_t predicate;    
            dispatch_once(&predicate, ^{    
                    ManagerInstance = [[self alloc] init];     
            });    
        return ManagerInstance;    
    }  
    

    相关文章

      网友评论

          本文标题:iOS设计模式-单例模式

          本文链接:https://www.haomeiwen.com/subject/petpjdtx.html