При каких обстоятельствах я должен использовать класс Singleton? - PullRequest
5 голосов
/ 20 декабря 2008

Закрыт как точный дубликат этого вопроса . Но вновь открыт, так как другие вопросы Singleton предназначены для общего пользования, а не для доступа к БД

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

Какова цель создания таких классов, чтобы они все-таки были синглетонами?
Требуется ли последовательный доступ к базе данных, что не является убедительным, поскольку большинство современных баз данных могут хорошо справляться с параллелизмом?
Это возможность многократно использовать одно соединение, о котором можно было бы заботиться через пул соединений? Или это экономит память, запуская один экземпляр?

Пожалуйста, просветите меня об этом.

Ответы [ 11 ]

0 голосов
/ 20 декабря 2008

с c #, я бы сказал, что синглтон редко подходит. Большинство вариантов использования синглтона лучше разрешать статическим классом. Помнить о безопасности потоков очень важно, хотя и с чем-то статичным. Для доступа к базе данных вам, вероятно, не нужно одно соединение, как упоминалось выше. Лучше всего создать соединение и использовать встроенный пул. Вы можете создать статический метод, который возвращает новое соединение, чтобы уменьшить код, если хотите. Однако шаблон / структура ORM может быть еще лучше.

В c # 3.5 методы расширения могут быть более подходящими, чем статический класс.

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