Какао Синглтон конвенции - PullRequest
3 голосов
/ 25 мая 2010

Какао полно синглетонов. Есть ли логическая / обычная разница между тем, когда API-интерфейсы Какао используют

NSSingletonObject *so = [NSSingletonObject defaultSingleton];

против

NSSingletonObject *so = [NSSingletonObject sharedSingleton];

Не так уж и много, но я не понимаю, почему иногда одно используется против другого.

1 Ответ

7 голосов
/ 25 мая 2010

Я думаю, что, как правило, если вы используете истинный синглтон (например, NSApplication ), тогда следует соглашение -[JKFoo sharedFoo]. Если, с другой стороны, класс предоставляет доступ к экземпляру по умолчанию, но вы все равно можете создавать другие экземпляры (например, NSNotificationQueue или NSFileManager ), тогда используется соглашение -[JKBar defaultBar].

Примечание: если вы реализуете несколько своих собственных синглетонов Cocoa, то есть полезный заголовок OpenSource , на который вы можете взглянуть:)

[править: Майк Эш в своем блоге ]

указал на еще лучшее одноэлементное решение с использованием GCD
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...