×

关于iOS开发单例使用问题

消耗积分:1 | 格式:rar | 大小:0.08 MB | 2017-09-25

分享资料个

  原文链接:Avoiding Singleton Abuse

  

  导语

  单例(Singletons),是Cocoa的核心模式之一。在iOS上,单例十分常见,比如:UIApplication,NSFileManager等等。虽然它们用起来十分方便,但实际上它们有许多问题需要注意。所以在你下次自动补全dispatch_once代码片段的时候,想一下这样会导致什么后果。

  什么是单例

  在《设计模式》一书中给出了单例的定义:

  单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  单例模式提供了一个访问点,供客户类为共享资源生成唯一实例,并通过它来对共享资源进行访问,这一模式提供了灵活性。

  在objective-c中,可以使用以下代码创建一个单例:

  +(instancetype)sharedInstance

  {

  static dispatch_once_t once;

  static id sharedInstance;

  dispatch_once(&once, ^{

  sharedInstance = [[self alloc]init];

  });

  return sharedInstance;

  }

  当类只能有一个实例,而且必须从一个访问点对其进行访问时使用单例就显得十分方便,因为使用单例保证了访问点的唯一、一致且为人熟知。

  单例中的问题

  全局状态

  首先我们都应该达成一个共识“全局可变状态”是危险的,因为这样会让程序变得难以理解和调试,就削减状态性代码上,面向对象编程应该向函数式编程学习。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !