Как использовать паттерн Локатор Служб (Service Locator) в Unity?

  Рет қаралды 6,946

Лавка Разработчика

Лавка Разработчика

Күн бұрын

Пікірлер: 29
@mn4840
@mn4840 2 жыл бұрын
Не могу не поблагодарить вас за столь клевые обучающие видео! Спасибо! и всего вам наилучшего!
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Спасибо!)
@user-yw5dq2it9g
@user-yw5dq2it9g 2 жыл бұрын
Огромное спасибо тебе за такие видео. Скоро у тебя будет дофига подписчиков ты только потерпи немного, и не в коем случае не бросай канал, как многие "unity ютубери" делают. У тебя просто отлично получается объяснить )
@vitaliySobakinson
@vitaliySobakinson 2 жыл бұрын
Отличное видео, спасибо!
@Fenix72rus
@Fenix72rus 2 жыл бұрын
Спасибо за урок!
@Fenix72rus
@Fenix72rus 2 жыл бұрын
Жду новые видео по архитектуре
@Paulsams
@Paulsams 2 жыл бұрын
Мне очень не понравилась работа со словарём. Делать ContainsKey, а потом ещё не через Add добавлять, а через квадратные скобки, то есть делая ещё кучу икволс и гет хеш код... А ещё делать контеинс кей, а потом ремув... Ну блин: для эдда есть TryAdd: если фолс, то кинешь исключение. Для взятия из словаря есть TryGetValue. Для удаления: Remove и так уже возвращает бул, если не нашёл. А так получается кучу лишних действия над словарями). В случаи с сервис локатором это не страшно, ведь можно закешировать ссылки, но если это будет в каком-нибудь сложном алгоритме и в апдейте... Люди же будут думать, что таких методов нету и будут вот так проверить сначала на наличие ключа, а только потом брать значение и будет алгоритм раза в 1,5-1,8 медленнее со стороны взятия элементов из словаря.
@def6141
@def6141 2 жыл бұрын
Спасибо! Новичку самое то 👍🔥
@poziratelnekotianok5419
@poziratelnekotianok5419 2 жыл бұрын
Сделай пожалуйста видео про инвентарь в виде списка.
@andrewalexart
@andrewalexart Жыл бұрын
Зачем он нужен-то. Неплохо бы объяснить вначале ролика)
@mrpaganinifeed2617
@mrpaganinifeed2617 2 жыл бұрын
Ролик замечательный, но не прочь его покритиковать. Вот я обычный разработчик, зашедший на это видео. Хочу же узнать на какие службы поставить мне сервис локатор. Что же я хочу услышать с начала видео? Что это за паттерн, какие он задачи решает , какие проблемы ему сопутствуют? А слышу объяснение в два слова и смотрю реализацию паттерна, который решает неизвестные задачи и тд. В итоге , только к концу ролика я могу составить мнение о надобности паттерна....
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Хорошее замечание, учту, спасибо)
@baikolepus
@baikolepus 2 жыл бұрын
Ролик не отвечает на вопрос "что такое паттерн сервис-локатор?". Он отвечает на вопрос, как его реализовать и использовать в условиях юнити
@rdragon587
@rdragon587 2 жыл бұрын
Как часто используется Service locator? Заменяет ли его Zenject?
@МаликаСапаргалиева
@МаликаСапаргалиева 2 жыл бұрын
Заменяется полностью, это все DI
@CiTRyS32
@CiTRyS32 2 жыл бұрын
Рубрика "научи плохому"?) Пробовал как-то статический сервис локатор, со статическим же вложенным классом, избавляет от словарей и проверок, но в конечном итоге понял, что не зря он считается анти-паттерном, когда графы посыпались, перешел на авторезолвер и прям счастлив
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Я чистой статикой стараюсь не пользоваться, но видел пару типов архитектур, где статические сервис локаторы отрабатывали очень хорошо. Справлялись со своей задачей, поддерживали версионность и контекст. Думаю, то, является ли паттерн удобным или неудобным - вопрос архитектуры приложения в целом. В любом случае, я показываю инструмент, пользоваться им не обязательно :)
@alexmakarov2504
@alexmakarov2504 2 жыл бұрын
Почему все говорят патЕрн, если пАтерн?
@nightyonetwothree
@nightyonetwothree Жыл бұрын
потому что языковая ассимиляция. Почему в америке ставят ударение "Иван", а не "ивАн"?
@am-no4jm
@am-no4jm Жыл бұрын
Спасибо, как загрузить код с удалённого сервера
@mrgoodpeople
@mrgoodpeople 9 ай бұрын
Почему все говорят, что Локатор Служб - это антипаттерн?
@FVA322
@FVA322 2 ай бұрын
Размытие ответственностей + кто угодно в любом месте в коде может выгрузить сервис из локатара и всё пойдет по езде. ИМХО
@_EnVyUs
@_EnVyUs 2 жыл бұрын
Кто то будет переписывать свой код на подобный
@aarontower
@aarontower Жыл бұрын
kzbin.info/www/bejne/qZjPh2WhoMZ8otU мы точно возвращаем newServis? А не _itemsMap[type]
@gamedevlavka
@gamedevlavka Жыл бұрын
Так это одно и тоже, там одна и та же ссылка)
@aarontower
@aarontower Жыл бұрын
@@gamedevlavka с ссылочными типами всегда почему то лень разбираться) предпочитаю фактическое использование)
@gamedevlavka
@gamedevlavka Жыл бұрын
@@aarontower с опытом это будет на автомате)
@darkharbinger6110
@darkharbinger6110 2 жыл бұрын
Спасибо за видео! Когда реализовывал Service Locator, то еще дополнительно делал интерфейс IRequireService public interface IRequireService where TService : class { } И метод расширения public static TService InitializeService(this IRequireService obj) where TService : class { IServiceLocator serviceLocator = Singleton.Instance; if (serviceLocator == null) { return default; } return serviceLocator.GetService(); } И после регистрации необходимого сервиса в локаторе служб public class ServiceLocator : ServiceLocatorBase { protected override void OnInit() { RegisterService(new Service()); } protected override void OnAfterInit() { } } Можно было получать необходимые зависимости следующим образом public class Test : MonoBehaviour, IRequireService { private IService service; void Start() { service = this.InitializeService(); service.Print(); } } Что, как по мне, делает использование локатора служб немного удобнее и позволяет сразу увидеть какие зависимости требует класс
@gamedevlavka
@gamedevlavka 2 жыл бұрын
Такой апгрейд неплох, если юзаешь синглтоны. Если архитектура позволяет, то, почему бы и нет)
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
Разбираемся в составных LayoutGroups на примере (+ ContentSizeFitter)
26:30
ScriptableObject в Unity на примере информации о сундуках
10:05
Лавка Разработчика
Рет қаралды 20 М.
Паттерн Прокси (Proxy) в C#. Как использовать в Unity?
18:18
Лавка Разработчика
Рет қаралды 2,7 М.
Как реализовать паттерн декоратор (Decorator) в Unity?
22:16
Лавка Разработчика
Рет қаралды 7 М.
ObservableVariable в Unity, разбираем на примере
20:17
Лавка Разработчика
Рет қаралды 4,3 М.
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН