姬長信(Redy)

IOS 单例模式总结

在项目中我们经常会使用到单例,今天我个人就说说我眼中的单例。
首先说一说什么是单例呢?使用单例的好处有哪些呢?
单例是iOS中常用的一种设计模式。单例模式是一个类在系统中只用一个实例对象。通过全局的一个入口点对这个实例对象进行访问;
单例的好处:
1、提供了对唯一实例的受控访问。
2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
单例分为两种:
第一、完全意义上的单例:就是无论我们是alloc、copy、还是使用shared方法创建出来的单例对象都是一个;
非完全意义上的单例:就是我们alloc、copy、还是使用shared方法创建出来的单例对象都是不相同(这种方式其实也就失去了单例的特性,我们不会使用,但是新手学习的时候还是可能出现的)。
第二:线程安全的单例:就是多个线程同时访问的时候不会出现多个对象;
非线程安全的单例:就是多个线程同时访问的时候可能会出现多个对象。
当然两两是可以结合的,我们一般使用的就是线程安全完全意义上的单例
下面我们就说一下几种单例。
首先我们先定义一个类TRDataManager
其次我们就来说说几种单例了。
1、我们不用的非完全意义上的单例:
.h文件中我们声明一个方法+ (instancetype)sharedDataManager;
.m文件中实现: