为什么使用全局变量类(单例)不好的做法?

时间:2013-08-23 19:37:32

标签: ios singleton

我正在工作的公司有一个巨大的类(Globals.m)是一个单身人士。它主要存储了一堆应该进入NSUserDefaults的BOOL,但是也有指向各种视图控制器的视频播放器之类的指针。我对iOS开发相当陌生(而且我是一名低级实习生),但我知道这段代码闻起来很高尚。我如何解释为什么使用单例来存储所有变量是不是很糟糕?

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

2 个答案:

答案 0 :(得分:4)

UIKit中的很多物品都是单身人士。 UIApplication对象是一个单例。 NSUserDefaults有standardUserDefaults单身人士。 UIDevice currentDevice返回单身。

仅仅因为它是单身并不意味着它是坏事。什么是坏事,当你开始将其他类中的功能绑定到你的单例对象时,它根深蒂固,你不能轻易地改变单例或受影响的对象。

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

答案 1 :(得分:0)

Globals.m听起来不像单身,如果是,它看起来只是用于配置目的?然后,我想,一个充满#definesextern的文件会做同样的事情。没有更多细节,很难知道你在搜索什么。