Шаблоны Java. Singleton (Одиночка)

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

Очень структурированно, мне понравилось. Видно, что человек готовился. А то некоторые снимают так, будто на ходу придумывают.

AnnaIsHere
Автор

Улыбнул пример использования:
Синглтон нужен для создания только одного экземпляра класса. Пример использования - нам необходимо создать только один экземпляр класса))
"Вы можете надеть трусы поверх шубы. Пример использования - вам нужно надеть трусы поверх шубы"

ps: это всё шутки. автор отлично подает инфу, много узнал из этого и других видео

sorfolr
Автор

Только что защитил курсовую по ООП. Испоьзовал твой пример) Спасибо!

faran
Автор

Для потокобезопасного синглтона надо + static переменную сделать volatile и syncronized делать не метод а блок и обрамить только создание экземпляра класса, и сделать повторную проверку на null

Qnoize
Автор

Голос на Коляна из реальных пацанов похож)

denissimo
Автор

Евгений, как всегда хочу высказать Вам благодарность за Вашу проделанную работу. Мне это нужно было, сейчас пытаюсь Singleton + Сериализация использовать для чтение из и записи в CSV файлы + редакцию файла надо запилить методу...

RG-emnh
Автор

Спасибо! Блин вчера только на тесте завалился с примером как в 20 строке кода, где надо было использовать += к String =)) Думал так нельзя со строками делать в Java =)))

crashoverride
Автор

Спасибо за видео! Кстати, можно было бы дополнить его такими понятиями, как Multiton, MonoState, Singleton Lazy Init, Singleton Thread Safety и про особенности обхода паттерна синглтон используя рефлексию или сериализацию.

azerphoenix
Автор

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

MrTricksleR
Автор

Восстановил аккаунт на ютубе, чтобы лайкнуть. Шикарные видео!

БагетТВ-тк
Автор

в данной реализации Singleton-а для объявления переменной инстанса необходимо volatile

valeriyemelyanov
Автор

Почти настоящий потокобезопасный singleton

simplechannel
Автор

Спасибо. Я нихрена не понял. Пересмотрю еще раз.

Pewspoon
Автор

все хорошо, но вот эти удары по клавишам очень по ушам бьют, особенно если в наушниках - очень неприятно

alexsoft
Автор

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

Vod-bn
Автор

Ни одного коммента, про то, что здесь есть косяк. Если не сделать метод addLogInfo синхронизированным, то возможно такое, что если 2 нити будут добавлять данные в logFile, то они будут неправильно добавляться (у меня так и происходит), ведь две нити по-очереди выполняют метод getProgramLogger(), но метод addLogInfo они могут выполнять одновременно, в основном так и получается.
Нет претензий к автору, я понимаю, что не в этом смысл видео, просто странно, что никто не написал об этом, будто никто даже и не проверял, а так, чисто ради галочки посмотрели

kek_pupold
Автор

Отличный урок, кратко и без излишеств! Жаль два лайка поставить нельзя!)))

steveromanchuk
Автор

Евгений добавьте пожалуйста в описание к видео, описание из файла Singleton.txt, как и в других видео про патерны.

Ilya_yarets
Автор

Зачем в методе GetProgrammLogger проверять programLogger на null если при обращении к методу GetProgrammLogger сначала будет инициализироваться поле programLogger и оно не будет null?

elizabeta
Автор

Здравствуйте! Спасибо за видео.
Но я бы кое-что поменял тут:

Если делать synchronized метод, то сильно будет теряться производительность нашего приложения, ведь потоки буду ждать друг-друга. (Представим, что их 100+).

Лучше всего сделать synchronized блок, в котором тоже проверяется условие:

if (programLogger == null) {
{
if ( programLogger == null) {
programLogger = new ProgramLogger();
}
}
return programLogger;
}

Делаю двойную проверку для надежности работы программы.

JGolt