2010-01-24 2 views
1

Можно создать дубликат:
Advantage of Static class over use of Singletonодноэлементные моделей VS статические типы

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

+2

Возможный дубликат того, что было закрыто как дубликат: http://stackoverflow.com/questions/839383/advantage-of-static-class-over-use-of-singleton – APC

ответ

0

Статический тип намного меньше (единица измерения). Синглтоны могут передаваться (как параметры) и унаследованы.

Для примеров и т.д. обратитесь к этой статье:

http://dotnetperls.com/singleton-static

В целом следует избегать общесистемных объектов, так как они предполагают, у вас есть глобальное состояние. Singleton используются для управления доступом к общему ресурсу (а не к состоянию).

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

0

зависит от того, что вы хотите сделать с объектом. если он просто вызывает методы на нем, просто используйте статику. если вы хотите передать объект вокруг и делать с ним объектно-ориентированный материал, то полиморфизм тогда сделает это объектным способом.

Смежные вопросы