美文网首页
iOS开发中之单例设计模式

iOS开发中之单例设计模式

作者: DB001 | 来源:发表于2020-04-28 15:45 被阅读0次

1、单例设计模式

基本概念:
1.所谓单例就是确保在程序运行过程中只创建一个对象实例。

使用单例模式的作用:
1.它可以保证某个类在程序运行过程中最多只有一个实例,也就是对象实例只占用一份内存资源。

单例模式的三个要点:

  1. 该类有且只有一个实例;
  2. 该类必须能够自行创建这个实例;
  3. 该类必须能够自行向整个系统提供这个实例。

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

#import "ViewController.h"
#import "KXXTool.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //创建对象
    KXXTool *t1 = [[KXXTool alloc]init];
    
    KXXTool *t2 = [[KXXTool alloc]init];
    KXXTool *t3 = [KXXTool new];

    NSLog(@"\n%@\n%@\n%@\n%@\n%@",t1,t2,t3,[KXXTool shareTool],[t1 copy]);
    
}
@end

***************************************************************

#import <Foundation/Foundation.h>

@interface KXXTool : NSObject<NSCopying,NSMutableCopying>

//提供类方法,方便外界访问
/*
 规范:share + 类名 |share |default + 类名|manager
 */

+(instancetype)shareTool;
@end


#import "KXXTool.h"

@implementation KXXTool

//01 提供一个全局的静态变量(对外界隐藏)
static KXXTool *_instance;

//02 重写alloc方法,保证永远只分配一次存储空间
// alloc - > allocWithZone(分配存储空间)

+(instancetype)allocWithZone:(struct _NSZone *)zone
{
 
    //只执行一次+线程安全
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _instance = [super allocWithZone:zone];
    });
    
    return _instance;
}

//03 提供类方法
+(instancetype)shareTool
{
    return [[self alloc]init];
}

//04 重写copy
-(id)copyWithZone:(NSZone *)zone
{
    return _instance;
}

-(id)mutableCopyWithZone:(NSZone *)zone
{
    return _instance;
}
@end

相关文章

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

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

  • iOS单例设计模式

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

  • IOS 设计模式

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

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • iOS中的单例模式

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

  • IOS开发过程中常用的设计模式

    当下IOS开发的过程中,常用的设计模式有:单例模式、委托模式、观察者模式和MVC模式; 一、单例模式 我们平时常用...

  • 【浅析iOS中常用设计模式】

    单例模式 单例模式是iOS开发中常用的一种设计模式,目的在于创建一次对象,多地方使用。系统中的单例例如:UIApp...

  • 单例模式 Singleton Pattern

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

  • @sychronized和dispatch_once,以及对单例

    在iOS开发中,经常使用到单例。单例是Cocoa中被广泛使用的设计模式之一。单例使得某个类在整个applicati...

  • 单例的2种写法

    单例模式是iOS开发中最常用的设计模式,iOS的单例模式有两种官方写法,如下: 1,常用写法 import "Se...

网友评论

      本文标题:iOS开发中之单例设计模式

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