将Singleton类用于“实用程序”类的主要优点是什么?

时间:2012-10-15 20:05:47

标签: objective-c ios

我已经看过许多对" Singleton"并且已经看到它们用于"实用程序"常见的验证,转换等功能。假设没有必要引用" self",使用单例是否有任何优势,而不是简单地用类方法实现实用程序类,可选的静态变量?样式?性能?并发?

换句话说,不是通过MySingleton实例调用foo:

BOOL b = [[MySingleton sharedInstance] foo:xyz];

可以通过MyUtility的类方法调用foo:

BOOL b = [[MyUtility class] foo:xyz];

隐含任何一个类的实现,如果可以,我将放弃列出它们。

1 个答案:

答案 0 :(得分:0)

除了你没有引用自我之外没有任何其他优点。而且,“你”我并不是指你MyUtility的实现,我的意思是那些称为MyUtility的类 - 换句话说,你最终会将MyUtility的实施知识投入其他类,与通常的面向对象原则相反。

那就是说,同样的论点是另一种方式。如果您认为存在实例,则需要MyUtility作为实例。如果你调用类方法,那么它可以在内部将它们传递给单例实例。

然而,因为实例是常态而不是例外,所以在风格上假定与实例交谈的推断较少。