Тёмный

Паттерн Singleton в языке программирования Swift 

Айосница
Подписаться 3,6 тыс.
Просмотров 486
50% 1

Популярный в iOS-разработке паттерн проектирования Singleton иногда еще называют Антипаттерном. Что это за паттерн, как его реализовать, пример использования, решение задачи по теме Singleton, почему это антипаттерн - рассказала в этом видео.
Наши курсы: wwds.pro/courses
Задачник по языку программирования Swift: wwds.pro/problembook
Instagram: / dasha_astapova
Telegram: t.me/d_astapava

Опубликовано:

 

17 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 10   
@iosnitsa
@iosnitsa Месяц назад
0:00 Суть паттерна 4:34 Задача на использование паттерна Singleton 8:28 Минусы паттерна Singleton
@SomethingOtherThanArt
@SomethingOtherThanArt 27 дней назад
Здравствуйте, вопрос от не Swift-программиста. В реализации с использованием метода вы просто вызываете конструктор. Не проверяете, что экземпляр уже есть чтобы вернуть его а создайте каждый раз заново. Как происходит, что вызывающая сторона получает один и тот-же экземпляр а не каждый раз новый? Swift как-то по особому выполняет конструкторы в статических методах? Выполняются один раз при загрузке программы?
@iosnitsa
@iosnitsa 26 дней назад
Добрый. Благодаря тому, что это свойство типа (о чем нам говорит static), инициализация происходит при первом обращении к shared, это так называемая lazy инициализация, даже не смотря на то, что здесь мы не помечаем свойство как lazy явно. Собственно она и гарантирует, что экземпляр синглтона создается только один раз (при первом обращении, не при запуске программы) и этот же экземпляр повторно используется при последующих вызовах.
@SomethingOtherThanArt
@SomethingOtherThanArt 26 дней назад
@@iosnitsa Добрый день. Со свойством мне все понятно. Статические свойства инициализируются при загрузке программы. Но метод каждый раз должен выдавать новый экземпляр. Потому как он не читает заранее определенное статическое свойство а вызывает конструктор класса. То есть при каждом обращении к методу мы должны получать новый экземпляр. Но так как я не знаю Swift, возможно я не знаю какого-то магического поведения в данном случае. Мне стало очень интересно, вечерком поставлю Xcode и попробую. О вашего видно есть не несомненная польза для меня - Вы меня заинтересовали :)
@SomethingOtherThanArt
@SomethingOtherThanArt 26 дней назад
@@iosnitsa As I expected the magic doesn't work :( class Cucumber { public var name: String = "Cucumber #\(Int.random(in: 0..
@Denis-ez4zh
@Denis-ez4zh Месяц назад
8:30 начиная с этого времени - все неверно. Синглтон не антипаттерн и у него не может быть ни минусов ни плюсов. А если идет сравнение с "чем-то", то нужно обязательно говорить относительно чего идет сравнение. А второе - кто конкретно называет его антипаттерном?
@iosnitsa
@iosnitsa Месяц назад
вбейте в гугл "singleton антипаттерн", много статей как на русском, так и на английском на эту тему
@Denis-ez4zh
@Denis-ez4zh Месяц назад
То есть вы сами не знаете кто автор утверждения синглтон-антипаттерн но на слово поверили статьям из интернета? Все что в интернете не значит что там все специалисты, это одно и то же, что верить записям на заборе или слушать бабок у подъезда. Вы рассуждаете с точки зрения своих предпочтений, а с научной точки зрения во вселенной все относительно. Никаких минусов ни плюсов не существует, что хорошо лично вам, то другому будет не приемлимо, это вопрос личных предпочтений. Если вы хотите действительно узнать, то существует лишь контекст применения синглтона, для каких задач он применяется. Это как колесо от автомобиля нельзя прикрутить к двухклесному велосипеду. Хотя прикрутить можно, но вряд ли вы сможете на нем быстро ездить, хотя если ваc не интересует быстрая езда, то колесо от авто вам подойдет.
@Denis-ez4zh
@Denis-ez4zh Месяц назад
@@iosnitsa А в начале видео вы говорите что им много пользуются, но в конце говорите что это антипаттерн. Забавно вобщем)
@Crocopizdel
@Crocopizdel Месяц назад
@@Denis-ez4zh в общем.
Далее
ПОМОГЛА НАЗЫВАЕТСЯ😂
00:20
Просмотров 1,4 млн
Чего ожидать от HTTP/3 + Go
51:07
Просмотров 10 тыс.
Swift. Как его учить?
6:13
Просмотров 38 тыс.