objective-c - 应用程序设计 - 谁应该拥有单例对象

标签 objective-c cocoa design-patterns

在我的基于文档的应用程序中,我有一个 AppController 来处理打开首选项、“关于”面板等。我还有一个单例类;因为它基本上是一个传递的全局对象,谁应该拥有它?使用它的对象还是我的 AppController?我读过的一些文章说你应该有一个“中心”位置 - 就像委托(delegate)一样,其他人则说这是糟糕的设计,并且只有使用类 X 的对象才应该拥有类 X。你的看法是什么?

最佳答案

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

static Globals *sharedGlobals = nil;

@implementation Globals

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

第一次调用sharedGlobals方法时,单例将由调用它的类创建。谁先调用它并不重要。

关于objective-c - 应用程序设计 - 谁应该拥有单例对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12189110/

相关文章:

objective-c - 通过代码加载 View Controller

ios - 只要 UIView 可见,我怎样才能让它出现在我所有的应用程序屏幕上 iOS objective-c

objective-c - NSTextView 没有光标,如果它是空的

c++ - 具有静态 unique_ptr 的单例是一个好习惯吗

design-patterns - 包含几个单子(monad)的 Haskell 设计

design-patterns - 做一个邪恶的快速编译器的主要设计选择是什么?

objective-c - 为什么 NSURLConnection 在发送大量请求时会超时?

objective-c - 如何使用不同的 init 方法在 XIB 中创建自定义 View ?

objective-c - 如何在 Xcode (Cocoa) 中检索文件的图标

objective-c - 关于 Objective-C、Cocoa 和 Xcode 的一些问题