在基于文档的应用程序中,我有一个AppController来处理打开的Prefs,“关于”面板等。由于它基本上是一个传递给全局对象的全局对象,因此谁应该拥有它呢?使用它的对象还是我的AppController?我读过的一些文章说您应该有一个“中心”位置-像Delegate一样,其他文章则说这是不好的设计,并且只有使用X类的对象才应该拥有X类。您的看法是什么?
最佳答案
没有什么真正拥有单例,因为它存储在这样的静态变量中:
static Globals *sharedGlobals = nil;
@implementation Globals
+ (Globals *) sharedGlobals {
if (!sharedGlobals) sharedGlobals = [[Globals alloc] init];
return sharedGlobals;
}
第一次调用
sharedGlobals
方法时,无论哪个类都将创建单例。谁先调用它并不重要。