C# – Singleton и Статический Класс. Срываем покровы.

24
16



Однажды в одной жаркой стране жили два брата, static и singleton, пока не появился незнакомец по имени Николай Борисов и не рассказал братьям, что они не родня друг другу.
Находясь в поиске ответов, братья раскрывают страшную тайну правительства. Их мир ООП перевернулся и уже никогда не будет прежним…

Ну вот и новый видос подъехал, работяги. Хочу сказать поблагодарить, человека, который, критикуя канал, делает его лучше. Колян, спасибо.

Наша группа в контакте:
Наш спонсор:

Nguồn:https://wijstaanvooronzegrondrechten.org/

24 COMMENTS

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

  2. Синглтон – не нужный паттерн и так по всем паттернам ООП идем публикую видео.
    Подытожим: ООП – ненужный паттерн!)

  3. Блин, странно сравнивать ежа с ужом на примере колючей проволоки. Статик – это экземпляр класса, а синглтон – объект класса. Где-то подходит одно, где-то другое. Ну, например, как вы будете в статик классе контролировать асинхронную многопоточную запись в его поля? Придётся механизм какой-то придумывать, а-ля паттерн observer, типа qt-шных signal-slot. Вообще, ПМСМ, статические методы это норм, а вот статические поля – нехорошо это.

  4. ересь, вы нацелились на святой паттерн маслят. Гореть вам в девелоперском аду и дебажыть мултисербисную ентерпрайс систему где в каждом сервисе абильно юзается рефлексия 😀

  5. ты дно
    Очевидной альтернативой
    Синглтону является класс ос статическими переменными членами. Мне нравятся
    простые решения, да и использование статических классов вместо синглтона
    возможно. Однако у статических членов есть одно ограничение: автоматическая
    инициализация. Компилятор инициализирует статические переменные до вызова
    main() . Это значит, что они не могут использовать информацию, которая будет
    известна только после того как программа запустится и начнет работать
    (например, когда будет загружена файл настроек). А еще это значит, что они не
    могут полагаться друг на друга — компилятор не гарантирует очередности в
    которой относительно друг друга статические переменные будут
    инициализированы.
    Ленивая инициализация решает обе эти проблемы. Синглтон будет
    инициализирован настолько поздно, насколько возможно, так что ко времени его
    создания нужная информация уже будет загружена. И если это не приводит к
    циклической зависимости, один синглтон может ссылаться при инициализации
    на другой.

  6. Почему не нужный-то, в случаях, допустим когда идет речь о Dependency injection – очень даже нужный, чтобы, если будет необходимость поменять, вы могли реализовать интерфейс и вызвать нужный, рефлексия для этого – очень сомнительное занятие)) Ну а в остальных случаях можно и статиком заменить) Ну и сам синглтон можно о5 же через контейнер сделать, пускай он парится синглтон у вас это или нет. Господа не ходите в эту школу))) Они сами 2 строчки кода по жизни накалякали))

  7. А теперь вопрос, а если Sigleton наследуется от обычных классов для того что бы их использовать в других функциях без прямого вызова синглетона? что от кого наследовать и что кем вызывать? Через adapter? что то типо
    public class staticInstance : baseclass {
    public void func() =>sm.func();
    }
    public class testClass(){
    public void test(baseclass bc) => bc.func();
    }
    public class test2(){
    public static void Main(){
    testClass tc = new testClass();
    tc.test(new staticInstance());
    }
    }
    public static class sm{
    public static void func(){//
    do
    }
    } // я бы за такое убил

  8. А теперь главный вопрос. На кой хуй все эта поебистика нужна.
    В реальных задачах об этом даже думать не приходится.

    Наркоман.

  9. Вот наркоманию придумал с этой договоренностью. Сиди, смотри чтоб количество методов было одинаково и прочее…

  10. Добавляют ненужный инструментарий в свой фреймворк лишь бы новую версию выпустить.)))0)

  11. Синглтон – вполне себе нужный и полезный паттерн, особенно там где нельзя использовать рефлексию.. (на платформах где не полная реализация дотнета).
    И потом, не проще ли использовать синглтон, вместо подобных выкрутасов? Как минимум количество кода будет меньше…

LEAVE A REPLY

Please enter your comment!
Please enter your name here