美文网首页iOS 开发每天分享优质文章
iOS 中单例设计模式的解读

iOS 中单例设计模式的解读

作者: flowerflower | 来源:发表于2017-04-10 13:22 被阅读3739次

概念

在整个项目中只有一份内存,并不会分配很多内存,这个类的对象只能被初始化一次

单例的使用

方式一:不考虑线程

示例:
+ (instancetype)shareInstance {
    static LYUserManager *userManager;
    if(!userManager){
        userManager = [[LYUserManager alloc] init];
        
    return userManager;
       }
}

方式二:考虑线程

  • 声明一个静态变量去保存类的实例,确保它在类中的全局可用性
  • 声明一个静态变量dispatch_once_t,它确保初始化代码只执行一次
示例:
+ (instancetype)shareInstance {
    static LYUserManager *userManager;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        userManager = [[LYUserManager alloc] init];
    });
    
    return userManager;
}

单例的优化并设置断言

通过上面的方法,我们已经可以使用类方法来得到这个单例,但是如果是多人开发此项目,为了安全与管理代码的方便,也为了给不是这个单例的创作者但会用到这个单例的开发人员一些提示,让任何视图通过alloc创建对象的程序段断在此处,给程序员提示.我们通常会重写一些方法:
示例:

+ (instancetype)alloc{
    NSAssert(0, @"这是一个单例对象,请使用+(LYUserManager *)shareInstance方法");
    return nil;
}
+ (instancetype)allocWithZone:(struct _NSZone *)zone{
    return [self shareInstance];
}
+ (instancetype)new{
    return [self shareInstance];
}

相关文章

  • 单例模式 Singleton Pattern

    单例模式-菜鸟教程 iOS中的设计模式——单例(Singleton) iOS-单例模式写一次就够了 如何正确地写出...

  • iOS 单例模式

    关于单例模式的详解,看完这几篇,就完全了然了。iOS 单例模式iOS中的单例模式iOS单例的写法

  • iOS模式设计之--创建型:1、单例模式

    iOS模式设计之--1、单例模式

  • 谈一谈iOS单例模式

    这篇文章主要和大家谈一谈iOS中的单例模式,单例模式是一种常用的软件设计模式,想要深入了解iOS单例模式的朋友可以...

  • iOS单例设计模式

    在iOS的开发中,单例设计模式(Singleton Pattern)是用得最多的设计模式之一了。在iOS的SDK中...

  • 【设计模式】单例模式

    学习文章 iOS设计模式 - 单例 SwiftSingleton 原理图 说明 单例模式人人用过,严格的单例模式很...

  • python中OOP的单例

    目录 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式设计模式 是 前人...

  • 单例

    目标 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式设计模式 是 前人...

  • IOS 设计模式

    IOS开发中几种设计模式:单例模式、观察者模式、MVC模式、代理模式 一、单例模式 场景:确保程序运行期某个类,只...

  • iOS中的单例模式

    iOS开发中常用到2中设计模式,分别是代理模式和单例模式,本文主要介绍下单例模式 单例模式的作用 可以保证在程序运...

网友评论

    本文标题:iOS 中单例设计模式的解读

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