我为之工作的公司有一个巨大的阶级(Globals.m),那就是单身人士。它主要存储一堆应该进入NSUserDefaults的BOOLs,但也有指向属于各种视图控制器的视频播放器的指针。我对iOS开发相当陌生(而且我是一个低等的实习生),但我从直觉中知道,这段代码的味道太高了。我如何解释为什么使用单例来存储所有变量是不好的?
编辑:,我不是说单身是坏的,我只是指在这种情况下。实际上,应用程序中的每个重要变量都存储在这个实例中。
发布于 2013-08-23 19:46:17
UIKit中的许多对象都是单子对象。UIApplication对象是一个单例。NSUserDefaults有standardUserDefaults单例。UIDevice currentDevice返回一个单例。
仅仅因为这是个单身孩子并不意味着这很糟糕。糟糕的是,当您开始将其他类中的功能绑定到您的单例对象时,这种功能根深蒂固,无法轻松地更改单例或受影响的对象。
我使用单例来存储我的非CoreData对象结构。我还定义了一些获得库目录、编码数据和键控归档的助手方法。因此,我可以在任何需要的地方引用主数组对象,也可以轻松地访问方法,否则只是复制和粘贴。
发布于 2013-08-23 19:43:08
Globals.m听起来并不像单例,如果是的话,它看起来只是用于配置目的?我想,一个装满#defines或extern的文件也会这样做。没有更多的细节,很难知道你在搜索什么。
https://stackoverflow.com/questions/18410602
复制相似问题