单例的优缺点与创建

/*

单例模式的优点:

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

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

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

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

单例模式的缺点:

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

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

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

//1.静态变量

static  WZTool  * _instance;

//2.+alloc方法内部会调用allocWithZone方法,重写该方法控制永远只分配一次空间

+  (instancetype)  allocWithZone:  (struct_NSZone*)  zone

{

static  dispatch_once_tonceToken;

dispatch_once(&onceToken, ^{

_instance = [super  allocWithZone:zone];

});

return  _instance;

}

//3.提供类方法,方便外界访问,表明身份,说明这是一个单例,注意点:规范share+类名|default+类名|类名

+(instancetype)shareTool

{

return [[self alloc]init];

}

//4.重写copy和mutableCopy方法确保永远只有一个实例对象

-(id)copyWithZone:(NSZone*)zone

{

return_instance;

}

-(id)mutableCopyWithZone:(NSZone*)zone

{

return_instance;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在开发中经常会用到单例设计模式,目的就是为了在程序的整个生命周期内,只会创建一个类的实例对象,而且只要程序不被杀死...
    不要重名就好阅读 3,547评论 0 0
  • 单例模式的作用 可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问 从而方便地控制了实例个数,并...
    JonesCxy阅读 2,875评论 0 0
  • 填坑
    我不讲道理的阅读 916评论 0 0
  • 不沉迷过去,不妄想未来,全心全意的珍惜当下。不以物喜不以己悲,因为每一个当下都是最好的安排。 当嗷嗷待哺,咿咿呀呀...
    花柚豆阅读 4,531评论 0 1
  • 在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似...
    丘八老爷阅读 25,457评论 6 20