单例设计模式

单例模式优点

单例模式在内存中只有一个实例,减少了内存开支。特别是一个对象需要频繁的创建、销毁时,而创建与销毁的性能有无法优化,单例模式的优势就非常明显。

单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。

单例模式可以避免对资源的多重占用。

单例模式可以在系统设置全局的访问点,优化和共享资源访问。

单例模式缺点

单例模式一般没有接口,扩展很困难,除了修改代码基本上没有第二种途径实现。

单例模式对测试是不利的。在并行开发环境中,如果单例模式没有完成,是不能进行测试的。

单例模式与单一职责原则有冲突。

单例模式在iOS中的使用

单例模式在iOS开发中的使用还是蛮多的,许多Foundation、Cocoa和UIKit中的类都实现了单例模式,比如应用程序本身UIApplication、文件操作类NSFileManager、消息中心NSNotificitonCenter等系统都已经给我们实现单例,我们只需要使用就好了。在iOS中使用单例模式要使用类方法,通过类方法返回该类的唯一对象。

具体实现

在.h文件中

+(UserInfoModel *)sharedInstance; 声明方法

.m文件中实现方法

+ (UserInfoModel *)sharedInstance

{

static UserInfoModel *instance = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

instance = [[UserInfoModel alloc]init];

});

return instance;

}


调用类中每次实例化都会指向一个固定的 内存地址

UserInfoModel*model =  [UserInfoModel sharedInstance];

你可能感兴趣的:(单例设计模式)