我问这个用于 Objective-C 是因为我在那里使用它,但它可能适用于所有其他语言:
- 引用单个 Obj-C 属性是一件坏事吗?
- 在每个方法中调用共享实例会更好吗?
更准确地说:我有一个可以使用的单例类[MySingleton sharedInstance];
我需要另一个类中那个单例的值 50 次MySecondClass
所以我创建了一个 Obj-C 属性
@property (nonatomic, strong) MySingleton *mySingletonProperty;
MySecondClass
并通过调用懒惰地初始化该属性
if(!self.mySingletonProperty)
{
self.mySingletonProperty = [MySingleton sharedInstance];
}
我的一个朋友告诉我这不是一个好主意,最好不要使用单例来实例化属性。正确的方法是调用[MySingleton sharedInstance];
每个方法MySecondClass
并将其分配给局部变量。
那是对的吗?为什么?线程安全不是问题。
(请不要在这里讨论使用单例是否是一个坏主意 - 谢谢:-)