ios - 有效使用单例,Objective C

标签 ios nsmutablearray singleton

我对设计模式有点菜鸟。我刚刚开始使用单例,我正在考虑使用单例来方便地将数据存储在一个集中的位置,但在这样做之前我读了一些帖子,这些帖子似乎在说这不是正确的设计(或者我可能很困惑) ,但不清楚为什么。我想做的是:

将多个对象数组存储在一个集中的位置,以便可以处理对象以实现持久性。

如果不是单例有没有更好的方法来做到这一点?如果这是糟糕的设计,很高兴知道为什么。

最佳答案

单例模式的有用性和适用性在很大程度上取决于它所应用的环境。

关于它的最大提示是基于单例的代码的可测试性。其他提示包括它在并发环境中可能出现的潜在问题,以及在尝试回收单例拥有的资源时可能面临的困难。

但是,这些问题都不是开发 iOS 应用程序的主要问题:

  • 您的应用程序中的模型通常只有一个单例;您可以使其可交换以确保可测试性,例如通过读取类的名称以从运行时配置中实例化,或从运行时环境中推导它。
  • 尽管 iOS 应用使用并发构造,但它们大部分是单线程的。
  • iOS 应用程序一直运行到最终用户终止它们,此时操作系统会自动回收资源;杀死单例不会出现特定问题。

由于这些考虑,单例模式成为 iOS 应用程序的流行实现技术。只要您知道它的缺点并愿意与它们一起工作,那么在您的 iOS 应用中使用单例模式绝对没有错。

关于ios - 有效使用单例,Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17984356/

相关文章:

ios - "-[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object"错误

iphone - Objective-C 中的 NSMutableArray 插入

ios - NSMutableArray有6个(某些示例)项。 3个ID和3个数组(有关这3个ID的信息)。如何删除这些数字(ID)

java - 在 fragment 生命周期中跟踪对象实例

javascript - 如何在javascript中构建本地存储?

ios - 尝试分配除自身以外的委托(delegate)时出现解析错误

ios - 如何获取我在 UIWebView 上点击的 url?

objective-c - 在与他人共享代码之前编译一个 Objective C iOS 类

java - Intellij IDEA |打包AIR应用程序ios失败

java - 在抽象类中同步静态方法