Синглтоны действительно так плохи? [Дубликат]

Possible Duplicate:
What is so bad about Singletons?

Понятно, что в некоторых случаях можно злоупотреблять многими шаблонами проектирования, и, как мама всегда говорила: & quot;Too much of a good thing isn't always good!& Quot;

Я отмечаю, что в эти дни я часто использую Singletons, и я обеспокоен тем, что могу сам злоупотреблять шаблоном дизайна и все глубже и глубже погружаться в привычку плохой практики.

Мы разрабатываем приложение Flex, которое имеет довольно большую иерархическую структуру данных, хранящуюся в памяти, пока пользователь работает над ней. Пользователь может загружать, сохранять, изменять и обновлять данные по требованию.

Эти данные централизованы с помощью класса Singleton, который объединяет пару ArrayCollections, Arrays, объектов значений и некоторых других собственных переменных-членов, предоставляемых через методы получения и установки.

Чтобы получить ссылку на наши данные из любого места в приложении, мы делаем тип метода Model.getInstance (), который, я уверен, всем знаком. Это гарантирует, что мы всегда получим в руки одну и ту же копию данных, так как, когда мы проектировали, мы говорили, что только один раз может существовать экземпляр в течение времени жизни приложения.

Из этого центрального хранилища данных нам легко, например, отправлять события изменения свойств и могут иметь несколько компонентов пользовательского интерфейса, которые ссылаются на центральные данные, обновлять свои отображения, чтобы отражать произошедшие изменения данных.

До сих пор этот подход был эффективным и оказался очень практичным в наших условиях.

Однако я нахожу, что я немного переусердствовал при создании новых классов. Такие вопросы, как, например, должен ли класс быть Синглтоном, или если им лучше управлять каким-либо другим способом, как, например, с использованием, например, фабрики, иногда становятся немного сложными, с некоторой неопределенностью.

Где я могу провести черту с одиночками? Есть ли хорошее руководство для решения, когда использовать Singletons и когда держаться подальше от них.

Кроме того, кто-нибудь может порекомендовать хорошую книгу по шаблонам дизайна?

Ответы на вопрос(12)

Ваш ответ на вопрос