Реализация Singleton Objective-C, я делаю это правильно?
В моем классе колода у меня есть
static Deck *gInstance = NULL;
+(Deck *) instance {
@synchronized(self) {
if (gInstance == NULL)
gInstance = [[self alloc] init];
}
return (gInstance);
}
и метод init, который выглядит как
-(id) init {
if (gInstance != NULL) {
return self;
}
self = [super init];
if (self) {
// Lots of clever things
}
gInstance = self;
return self;
}
Моя проблема здесь в основномinit
реализован правильно. Пожалуйста, дайте мне знать, если то, что я написал, выглядит правильно для вас.
Или ... есть ли способ, которым я могу сделатьinit
частным и мешать людям (включая меня) видеть это вообще?