6

我工作的公司有一个单例的 HUGE 类(Globals.m)。它主要存储一堆应该进入 NSUserDefaults 的 BOOL,但也有指向属于各种视图控制器的视频播放器之类的指针。我对 iOS 开发相当陌生(而且我是一个低级的实习生),但我知道我的直觉是代码闻到了天堂的味道。我如何解释为什么使用单例来存储所有变量是不好的?

编辑:我并不是说单身不好,我只是说在这种情况下。本质上,应用程序中的每个重要变量都存储在这个实例中。

4

2 回答 2

4

UIKit 中的很多对象都是单例的。UIApplication 对象是一个单例。NSUserDefaults 有standardUserDefaults单例。UIDevicecurrentDevice返回一个单例。

仅仅因为它是一个单例并不意味着它很糟糕。糟糕的是,当您开始将其他类中的功能绑定到您的单例对象时,它根深蒂固,以至于您无法轻易更改单例或受影响的对象。

我使用单例来存储我的非 CoreData 对象结构。我还定义了一些辅助方法来获取库目录、编码数据和密钥归档。因此,我可以在任何需要的地方引用主数组对象,或者轻松访问原本只是复制和粘贴的方法。

于 2013-08-23T19:46:17.840 回答
0

Globals.m听起来不像是单例,如果是的话,它看起来只是用于配置目的?然后一个文件满了#defines或者extern会做同样的事情,我猜。如果没有更多详细信息,很难知道您在搜索什么。

于 2013-08-23T19:43:08.567 回答