Мне кажется первый пример нужно было реализовывать через паттерн состояния или изменить слегка пример. Убрать swim и добавить новые классы ходьба спортивным шагом, обычная ходьба, пьяная ходьба и т.пд
Всё вроде круто на бумаге, но где конкретика? Ведь чтоб поведения выполнялись, нужен монобех, а у тебя одни интерфейсы тут. Тема не до конца раскрыта, я считаю.
Я только закончил изучение паттернов, но как по мне если ты в угоду инкапсуляции забираешь возможность стратегии меняться динамически, то теряется её смысл и это больше напоминает паттерн Шаблонный метод. Будь добр поправь, если я ошибаюсь
@@NightTrainCode не за что :) просто, а если переименовал метод, все сдвигается влево или в право. А иногда левая часть очень далеко от правой и по факту читая код голову мотаешь. Ну как мне показалось без авто генерации слежения за подобным, не удобно, видел подобное один раз.
Чёрт. Помогите пожалуйста. Я всё пытаюсь понять, чё такое паттерны, но ничего не могу понять. Раньше ж я всё понимал нормально, но стоило столкнуться с паттернами - всё. Сплошные затупы и непонятки. Голова уже раскалывается, хоть и ни на шаг не приблизился к пониманию этой темы
Берешь один любой простой паттерн и тратишь времени столько, сколько нужно на его изучение. И так с каждым) Будет понятнее, если скажу, что «паттерн» - это шаблон кода, подходящего для решения какой-то проблемы?
Пиши без паттернов. Главное, чтоб игра работала. У нас тут не рокет саенс )) Когда база накопится, когда будешь готов, тогда в паттерны с головой окунешься. Не всё сразу. Да и в большинстве случаем они не нужны, либо сами собой получаются, только ты не знаешь, что ты изобрел велосипед. Это просто логика.
Видео просто не объяснило как задавать то или иное поведение в первом примере, я должен получается в Person завести переменную PersonSetup чтобы двигать его? Тогда получается жесткая связанность между сущностями
идея для ролика: из чего делать тот или иной объект, например дорогу в городе, это некий плейн или 3д объект или спрайт горизонтально положенный), она должна накладываться на террейн или просто висеть в воздухе рядом с объектами земли и тд. Было бы очень познавательно😁
@@NightTrainCode я думаю, что стоит добавить название паттерна не только в превью, но и в название, чтобы легче было другим людям находить, которые не являются подписчиками.
Благодарю за труд! Кайфую с подачи материала. ❤ В тот день когда ты снимишь видео о том как на реальном примере разрабатывать проект на unity с помощью MVVM. Оформлю платную подписку на тебя везде где только это возможно сделать😹
Сори за тупой вопрос но я не понял как происходит переключения с ходьбы на плаванье 2:08 неуглядел не зависимости ни тригеры для этого, если кто знает и вам не лень поделиться своим пониманием то можете разъяснить ?
Чуваааааак!!! Ну, не путай инкапсуляцию с сокрытием/изоляцией! Инкапсуляция -- некое логическое объединение данных вместе с методами их обработки. Главный инструмент для ее обеспечения -- собственно класс/структура (в C#, например), которые инкапсулируют в себе поля, свойства и методы. Инкапсуляция при этом не обязательно закрывает прямой доступ к данным, это просто некоторый логический контур, оболочка (собственно капсула) вокруг данных, который показывает, что "вот это все" относится к некой сущности, но не обязательно эта капсула -- непроницаема. Ты можешь сделать полностью открытый класс, и он все равно будет инкапсулировать (объединять в себе) данные и методы их обработки. А вот пример отсутствия инкапсуляции: в процедурных языках (например в C) можно делать отдельно глобальные переменные, глобальные методы и связывать это друг с другом в случайных местах в программе. Вот тут ни методы, ни данные не относятся ни к какой сущности. Одни просто есть, а вторые просто что-то делают с чем-то. Вопрос уместности открытости или закрытости -- совсем уже другая тема.
Спасибо за комментарий) Да, верно, инкапсуляция необязательно должна закрывать доступ к данным. Она должна защищать сущность от неправильного внешнего воздействия. Я нигде и не говорил, что инкапсуляции обязательно должна закрывать доступ. И здесь как раз пример инкапсуляции, потому что будет нелогично, например, если класс SilentCitizenUnit вдруг начнёт разговаривать 😄. И мы от этого спаслись. UPD: У меня и видео про инкапсуляцию есть)
@@NightTrainCode Вот опять же. Я, видно, неправильно акценты расставил. Инкапсуляция не должна защищать сущность. Она всего лишь обеспечивает такую возможность. Это как с вещами в доме: если они просто валяются на полу, то сложно будет их защитить от чужого воздействия. А вот если они сложены в шкаф, то другое дело. Но наличие шкафа с вещами само по себе не защищает вещи. Хозяин волен либо повесить на него замок, либо оставить его незапертым. Инкапсуляция есть: вещи аккуратно (или нет) разложены в шкафу. Сокрытие зависит от степени параноидальности хозяина))) Собственно, к чему я придрался (4:10): "Но в этом коде есть одна проблема. И это -- отсутствие инкапсуляции". Инкапсуляция там есть: класс с полем и методом для доступа к этому полю. То, что доступ этот публичный, никак не говорит об отсутствии инкапсуляции: она есть уже из простого факта, что это все описано в классе "Unit", который, собственно, инкапсулирует в себе поле и метод доступа к нему. Еще раз повторюсь, я не придираюсь к выбранному решению. Оно верное (с моей точки зрения). Я скорее "докапываюсь" до терминологии. Потому что потом "масялята" бегают с пеной у рта и доказывают, что инкапсуляция -- сокрытие/изоляция/защита данных от неконтролируемого доступа.
Дико недооцененный канал. Очень качестенное объяснение с хорошим качеством кода. Редко такое встретишь. Не останавливайся ❤️
Спасибо большое, этот канал я точно никогда не заброшу) ❤️
@@NightTrainCode видео не выходило 11 месяцев((
@@kaifimaz4524 Сам в шоке(
@@NightTrainCode надеюсь вернёшься. У тебя очень хорошо получается объяснять такой талант надо продвигать
Мне кажется первый пример нужно было реализовывать через паттерн состояния или изменить слегка пример. Убрать swim и добавить новые классы ходьба спортивным шагом, обычная ходьба, пьяная ходьба и т.пд
Всё вроде круто на бумаге, но где конкретика? Ведь чтоб поведения выполнялись, нужен монобех, а у тебя одни интерфейсы тут. Тема не до конца раскрыта, я считаю.
Я только закончил изучение паттернов, но как по мне если ты в угоду инкапсуляции забираешь возможность стратегии меняться динамически, то теряется её смысл и это больше напоминает паттерн Шаблонный метод. Будь добр поправь, если я ошибаюсь
Обожаю начало твоих видео прям в фирменном стиле и это очень круто а в видео воды вообще нету а это очень большой +
МУЖИК ТЫ РЕАЛЬНО ХОРОШ РЕСПЕКТ
Еее, большое спасибо, мужик! 😉❤️
Отличное объяснение паттерна! И радует, что ролики стали выходить намного чаще!
Спасибо большое)
Ахах, да
@@NightTrainCode не за что :) просто, а если переименовал метод, все сдвигается влево или в право. А иногда левая часть очень далеко от правой и по факту читая код голову мотаешь. Ну как мне показалось без авто генерации слежения за подобным, не удобно, видел подобное один раз.
Очень годно
Вдарьте кнопке подписаться на этот канал! Покажите этой кнопке кто тут главный!
Ахах, спасибо, спасибо)))
Чёрт. Помогите пожалуйста. Я всё пытаюсь понять, чё такое паттерны, но ничего не могу понять. Раньше ж я всё понимал нормально, но стоило столкнуться с паттернами - всё. Сплошные затупы и непонятки. Голова уже раскалывается, хоть и ни на шаг не приблизился к пониманию этой темы
Берешь один любой простой паттерн и тратишь времени столько, сколько нужно на его изучение. И так с каждым)
Будет понятнее, если скажу, что «паттерн» - это шаблон кода, подходящего для решения какой-то проблемы?
Пиши без паттернов. Главное, чтоб игра работала. У нас тут не рокет саенс )) Когда база накопится, когда будешь готов, тогда в паттерны с головой окунешься. Не всё сразу. Да и в большинстве случаем они не нужны, либо сами собой получаются, только ты не знаешь, что ты изобрел велосипед. Это просто логика.
Видео просто не объяснило как задавать то или иное поведение в первом примере, я должен получается в Person завести переменную PersonSetup чтобы двигать его? Тогда получается жесткая связанность между сущностями
идея для ролика: из чего делать тот или иной объект, например дорогу в городе, это некий плейн или 3д объект или спрайт горизонтально положенный), она должна накладываться на террейн или просто висеть в воздухе рядом с объектами земли и тд. Было бы очень познавательно😁
Понимаю, что вопрос не в тему, но подскажите пожалуйста на 3:29, что за музыка на фоне. Очень нужна (´▽`ʃ♡ƪ)
Увидел название.
Подумал: ну началось. Опять этот синглтон. У тебя же есть видео про Zenject.
Услышал о чем речь идет. Сразу подумал: уважуха)
Ахах, ну я же прошаренный чуть-чуть 😹
Спасибо)
@@NightTrainCode я думаю, что стоит добавить название паттерна не только в превью, но и в название, чтобы легче было другим людям находить, которые не являются подписчиками.
@@theoctan8569 В описании и тегах есть название для SEO, а так, на превью оно)
И 1000 лет не прошло, удаче тебе
Удобно выдерживать принятый код стайл?
public void Speak() => .........
publick void Attack(.....................) => .......
В Rider это можно нажатием трёх клавиш сделать)
Ура, новый ролик =)
спасибо. познавательно. ждем новых видео.
На здоровье, спасибо)
Спасибо за видео! Хотелось бы побольше о паттернах в Unity с простыми примерами реализации
В полку классных каналов по Unity без говнокода от школьников прибыло!! Продолжай, таких каналов очень не хватает.
P.s. Подписался.
Спасибо)
Благодарю за труд! Кайфую с подачи материала. ❤ В тот день когда ты снимишь видео о том как на реальном примере разрабатывать проект на unity с помощью MVVM. Оформлю платную подписку на тебя везде где только это возможно сделать😹
Спасибо большое 😊
Ахах, договорились)
Сори за тупой вопрос но я не понял как происходит переключения с ходьбы на плаванье 2:08 неуглядел не зависимости ни тригеры для этого, если кто знает и вам не лень поделиться своим пониманием то можете разъяснить ?
Там просто абстрактный пример
Можно самому в любой момент менять поведение как захочется ну и чтобы было логично)
3 видос за 2 недели.
Ес)
Приятно наблюдать что канал оживает, видео качественные, жду много интересного
Спасибо)
Спасибо за видео. Рад, что нашёл этот канал.
На здоровье, спасибо)
У тебя такая кайфовая подача материала, спасибо, что рассказываешь!
Спасибо большое за тёплые слова)
спасибо за видос
Спасибо за коммент, на здоровье)
Кайф
Ролики, которые смотреть просто приятно, а полезная инфа как бонус
Благодарю)
Ещё бы посмотреть поттерны строитель и наблюдатель.
Наблюдатель уже есть на канале, но я хочу перезаписать этот видос
на метаните вроде тоже есть патерны, но у тебя понятнее получается)
Ахах, спасибо)
Чуваааааак!!! Ну, не путай инкапсуляцию с сокрытием/изоляцией! Инкапсуляция -- некое логическое объединение данных вместе с методами их обработки. Главный инструмент для ее обеспечения -- собственно класс/структура (в C#, например), которые инкапсулируют в себе поля, свойства и методы. Инкапсуляция при этом не обязательно закрывает прямой доступ к данным, это просто некоторый логический контур, оболочка (собственно капсула) вокруг данных, который показывает, что "вот это все" относится к некой сущности, но не обязательно эта капсула -- непроницаема. Ты можешь сделать полностью открытый класс, и он все равно будет инкапсулировать (объединять в себе) данные и методы их обработки.
А вот пример отсутствия инкапсуляции: в процедурных языках (например в C) можно делать отдельно глобальные переменные, глобальные методы и связывать это друг с другом в случайных местах в программе. Вот тут ни методы, ни данные не относятся ни к какой сущности. Одни просто есть, а вторые просто что-то делают с чем-то.
Вопрос уместности открытости или закрытости -- совсем уже другая тема.
Спасибо за комментарий)
Да, верно, инкапсуляция необязательно должна закрывать доступ к данным. Она должна защищать сущность от неправильного внешнего воздействия. Я нигде и не говорил, что инкапсуляции обязательно должна закрывать доступ. И здесь как раз пример инкапсуляции, потому что будет нелогично, например, если класс SilentCitizenUnit вдруг начнёт разговаривать 😄. И мы от этого спаслись.
UPD: У меня и видео про инкапсуляцию есть)
@@NightTrainCode Вот опять же. Я, видно, неправильно акценты расставил. Инкапсуляция не должна защищать сущность. Она всего лишь обеспечивает такую возможность. Это как с вещами в доме: если они просто валяются на полу, то сложно будет их защитить от чужого воздействия. А вот если они сложены в шкаф, то другое дело. Но наличие шкафа с вещами само по себе не защищает вещи. Хозяин волен либо повесить на него замок, либо оставить его незапертым. Инкапсуляция есть: вещи аккуратно (или нет) разложены в шкафу. Сокрытие зависит от степени параноидальности хозяина)))
Собственно, к чему я придрался (4:10): "Но в этом коде есть одна проблема. И это -- отсутствие инкапсуляции". Инкапсуляция там есть: класс с полем и методом для доступа к этому полю. То, что доступ этот публичный, никак не говорит об отсутствии инкапсуляции: она есть уже из простого факта, что это все описано в классе "Unit", который, собственно, инкапсулирует в себе поле и метод доступа к нему.
Еще раз повторюсь, я не придираюсь к выбранному решению. Оно верное (с моей точки зрения). Я скорее "докапываюсь" до терминологии. Потому что потом "масялята" бегают с пеной у рта и доказывают, что инкапсуляция -- сокрытие/изоляция/защита данных от неконтролируемого доступа.
@@АлександрСериков-ч5ю а ты хорош
Моё почтение за ролик!
Спасибо)
Блин, по новой. Как бы и понял, но и понял, что не понял...