单例的使用,优缺点

2018-09-13  本文已影响10人  雷3雷

GCD 几句实现单利:

.m中的写这一步即可食用staticXSYCoreDataStackManger * xsyCoreDataManager =nil;+(XSYCoreDataStackManger *)shareInstance{staticdispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

xsyCoreDataManager=[[XSYCoreDataStackManger alloc] init];

});returnxsyCoreDataManager;

}

1.单例模式的要点:

显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。

2.单例模式的优点:

1.实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本,从而确保所有对象都访问唯一实例。

2.灵活性:因为类控制了实例化过程,所以类可以更加灵活修改实例化过程

3.单例模式的缺点

1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。

2、单例类的职责过重,在一定程度上违背了“单一职责原则”。

3、滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。

iOS中的单例模式

在objective-c中要实现一个单例类,至少需要做以下四个步骤:

1、为单例对象实现一个静态实例,并初始化,然后设置成nil,

2、实现一个实例构造方法检查上面声明的静态实例是否为nil,如果是则新建并返回一个本类的实例,

3、重写allocWithZone方法,用来保证其他人直接使用alloc和init试图获得一个新实力的时候不产生一个新实例,

4、适当实现allocWitheZone,copyWithZone

上一篇 下一篇

猜你喜欢

热点阅读