powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем Singleton-у sealed?
14 сообщений из 14, страница 1 из 1
Зачем Singleton-у sealed?
    #38478203
student13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос новичка-теоретика, только что прочитавшего о таком преимуществ синглтона перед статиками, как гибкость в разрезе наследования, а тут его майкрософт рекомендует запечатывать.

Я могу теоретически предположить, что в одном проекте может быть необходимость в нескольких однотипных одиночках, реализованных фабрикой, и тогда они потомки.
Представить себе ситуацию, в которой они были бы родителями, я не могу.
Но зачем обязательно запечатывать?
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38478297
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
student13,
может потому что унаследовав синглетон мы сможем создавать множество объектов, по поведению идентичных базовому классу (который должен инстанцироваться только в одном экземпляре)?
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38478569
student13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoder,

Логично. Чисто теоретически таким образом можно наплодить экзэмрляров этого одиночки, лишив тем самым его смысла существования :)
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38478679
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю, что такое синглтоны. Я вот, не знаю нафиг они нужны.
Можно комменты?
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38478686
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПС. Хотелось бы услышать комменты от практикующего программиста, а не от "теоретика".
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38478721
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

Есть у меня класс, отвечающий за логгирование.
У меня нет никаких причин предполагать, что мне понадобится два или более параллельных лога в одной программе. Поэтому инстанс этого класса я делаю синглтоном (точнее, возвращаю для второй и последующей попытки создания объекта ссылку на первый созданный объект). Такой бизнес-кейс устроит?
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38478741
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arniShSerge,

...У меня нет никаких причин предполагать, что мне понадобится два или более параллельных лога в одной программе...
А при чём здесь синглтон?
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38478783
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeА при чём здесь синглтон?Если объект, должный существовать в единственном числе, это по вашему не синглтон, то далее нам нечего обсуждать. Ведь чтобы спорить, нужно иметь одинаковую понятийную базу.
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38479121
student13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge, мне тоже нтересно узнать, почему не синглтон, а не статик?
Только ли из-за красивого модного словца или во многих промышленных, коммерческих продуктах возникает необходимость играться с наследованием для одиночек?
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38479176
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
static != singltone

статических инстанцев одного класса можно наплодить любое количество
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38479981
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lepsik,
я так думаю, товарищ имел ввиду статический класс. На первый взгляд, особой разницы нет: то ли вызвать у синглетона поле Instance, и дергать методы, то ли сделать все методы статическими, и дергать их напрямую (данные в классе тоже все статические). В обоих случаях решается основная цель синглетона: единая точка доступа. Объект статического класса C# создать не даст.

Тут начинаются более тонкие различия, когда какой способ выбрать)
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38480042
student13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimeCoderLepsik,
я так думаю, товарищ имел ввиду статический класс. На первый взгляд, особой разницы нет: то ли вызвать у синглетона поле Instance, и дергать методы, то ли сделать все методы статическими, и дергать их напрямую (данные в классе тоже все статические). В обоих случаях решается основная цель синглетона: единая точка доступа. Объект статического класса C# создать не даст.

Тут начинаются более тонкие различия, когда какой способ выбрать)
Можно поподробнее об этих тонких отличиях и о ситуациях, в которых тот или иной более уместен?
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38480051
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student13ShSerge, мне тоже интересно узнать, почему не синглтон, а не статик?

Статик классы имеют недостаток - работа с интерфейсами. Поэтому IoC к ним малоприменим.
Поэтому для singleton классов я static не применяю.

student13а тут его майкрософт рекомендует запечатывать
А тут - это где? Я бы почитал сначала.
...
Рейтинг: 0 / 0
Зачем Singleton-у sealed?
    #38480099
TimeCoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
student13,
чуть выше уже дали ответ. Да, хотя бы даже IoC. Без него ни один реальный enterprise-проект не строится.

Идеалогия ООП проста: все есть объект. А статический класс - это что-то типа контейнера для методов. Это удобно, когда нужно дергать часто и много разных методов, как например Math.Sin, Math.Abs, Math.Pow. Писать Math.Instance.Sin было бы не удобно. И не логично, эти методы чаще всего вообще не используют данные, все нужное для их работы приходит в виде параметров метода.
А вот если речь идет не просто о наборе несвязанных функций, а логически цельном объекте с данными, но который должен быть в одном экземпляре - то это синглетон. Класс настроек, класс для работы со звуком и пр. (GfxServer, SoundServer, PhysicsServer, ...)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем Singleton-у sealed?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]