Singleton полезен, когда вы должны быть уверены, что существует один и только один экземпляр класса, и что этот объект должен быть доступен из нескольких места в коде.
Если может иметь смысл, что более одного экземпляра вашего класса может использоваться одновременно, то вам не нужен синглтон.
Вот некоторая информация о том, где использовать синглтоны:
http://www.ibm.com/developerworks/webservices/library/co-single.html
Из статьи, упомянутой ранее:
Чтобы решить, действительно ли класс
Синглтон, ты должен спросить себя немного
вопросы.
- Будет ли каждое приложение использовать этот класс точно так же?
(именно это ключевое слово)
- Потребуется ли каждому приложению только один экземпляр этого класса?
(всегда и один являются ключевыми словами)
Если клиенты этого класса не знают о приложении, они
часть?
Если вы ответите «да» на все три вопроса, то вы нашли
синглтон. Ключевые моменты здесь
что класс является единственным, если
все приложения относятся именно к
то же самое, и если его клиенты могут использовать
класс без контекста приложения.