我正在工作的公司有一个巨大的类(Globals.m)是一个单身人士。它主要存储了一堆应该进入NSUserDefaults的BOOL,但是也有指向各种视图控制器的视频播放器之类的指针。我对iOS开发相当陌生(而且我是一名低级实习生),但我知道这段代码闻起来很高尚。我如何解释为什么使用单例来存储所有变量是不是很糟糕?
编辑:我不是说单身人士不好,我只是意味着在这种情况下。基本上,应用程序中的每个重要变量都存储在这一个实例中。
答案 0 :(得分:4)
UIKit中的很多物品都是单身人士。 UIApplication对象是一个单例。 NSUserDefaults有standardUserDefaults
单身人士。 UIDevice currentDevice
返回单身。
仅仅因为它是单身并不意味着它是坏事。什么是坏事,当你开始将其他类中的功能绑定到你的单例对象时,它根深蒂固,你不能轻易地改变单例或受影响的对象。
我使用单例来存储我的非CoreData对象结构。我还定义了一些辅助方法来获取库目录,编码数据和键控归档。因此,我可以在任何需要的地方引用主数组对象,或者轻松访问原本只能复制和粘贴的方法。
答案 1 :(得分:0)
Globals.m
听起来不像单身,如果是,它看起来只是用于配置目的?然后,我想,一个充满#defines
或extern
的文件会做同样的事情。没有更多细节,很难知道你在搜索什么。