在基于文档的应用程序中,我有一个AppController来处理打开的Prefs,“关于”面板等。由于它基本上是一个传递给全局对象的全局对象,因此谁应该拥有它呢?使用它的对象还是我的AppController?我读过的一些文章说您应该有一个“中心”位置-像Delegate一样,其他文章则说这是不好的设计,并且只有使用X类的对象才应该拥有X类。您的看法是什么?

最佳答案

没有什么真正拥有单例,因为它存储在这样的静态变量中:

static Globals *sharedGlobals = nil;

@implementation Globals

+ (Globals *) sharedGlobals {
    if (!sharedGlobals) sharedGlobals = [[Globals alloc] init];
    return sharedGlobals;
}


第一次调用sharedGlobals方法时,无论哪个类都将创建单例。谁先调用它并不重要。

10-08 16:18