Важнейший шаблон программирования из 23-х
ฝัง
- เผยแพร่เมื่อ 10 มิ.ย. 2019
- В этом выпуске разберемся с шаблоном проектирования стратегия (strategy)
Проект
github.com/extremecodetv/patt...
ссылки:
● VK: bit.ly/vk_extremecodetv
● Telegram Chat: bit.ly/telegram_extremecodetv
● Patreon: / extremecode - วิทยาศาสตร์และเทคโนโลยี
1:25 откинулся на спинку табуретки и только потом вспомнил, что у табуреток нету спинки
не та стратегия табуретки попалась
Откинулся на спинку, сидя на табуретке, но не упал, потому что благодаря паттерну стратегия смог прямо в рантайме на лету заменить логику табуретки на логику кресла.
не упал, потому что это была не табуретка, а абстрактная фабрика
Тоесть, стратегия это просто использовать интерфейс по назначению?
Да!!!!!
Нет, конечно. Использование интерфейсов по назначению это описание типа и абстрагирование от конкретных объектов.
Для примера можно взять видос на каком-то сервисе. Предположим, что у его можно посмотреть, можно прослушать аудио(в наушниках во время пробежки), можно оставить комментарий. Этот функционал находится в разных модулях системы. Тогда интерфейсы будут следующее:
interface IVideo { public void show();}
interface IAudio { public void sound();}
interface IHasComments { public void comment(string comment);}
Тогда подсистема отвечающая за проигрывания звука принимает на вход объект, имплеменирующий интерфейс (реализующий тип) IAudio. Примерно так:
void play (IAudio someObject) { someObject.sound();}
И ей, по большому счету, все все равно видео это или аудио или что-то еще, главное чтобы это что-то имело методы описанные в интерфейсе. В данном случае метод sound.
Другими словами аудиоплеер принимает на вход метода play некий объект типа аудио, что еще там есть кроме возможности проиграть аудио, и как конректно он проигрывает аудио аудиоплееру пофиг.
То же самое с комментариями.
Чуть более сложный пример, у нас есть аудиозапись и мы ходим её прослушать через вебморду для роликов. Тогда мы реализуем поведение типа видео таким образом, чтобы метод show показывал статичную картинку и проигрывал аудио. Примерно так:
class AudiobookVideoWrapper : IVideo
{
IAudio audio;
...
public void show() {
this.showStaticPicture();
this.audio.sound();
}
...
}
@@EshkinKot1980 Я всё равно не понял, по моему Madgel _
всё правильно сказал(а). Если мы внедряем зависимость по интерфейсу и юзаем эту зависимость только через методы интерфейса, то это стратегия?
@@TKSherlock Не все паттерны это стратегия, а интерфейсы используются почти во всех паттернах. Более того интерфейсы можно и нужно использовать даже без паттернов и без внедрения зависимостей.
какое-то инкапсулированное определение:D не проще ли сказать:
"стратегия это просто реализация полиморфного поведения. "
Самое гавняное видео про хенджоб и футджоб что мне приходилось видеть...
даже блоу джоба нету..
Артем Витальевич ЛУЧШИЙ в мире
Когда пришло уведомление, что вышло видео, я подумал, это глюки... А неееее))) Наконец-то, дождались)))
- Стратегия (шаблон программирования)
- Мотивация программировать
- Порно видео онлайн бесплатно
- Winderton
- Что делать когда всё заебало
- My Little Pony в кино(2017)
Хорошие рофлы, я оценил.
Орнул с воркера и его работы)))
PS: Помните, когда приходите на собеседование и Вас спрашивают о том какие паттерны вы знаете и используете.
Лучше начните со стратегии "HandJob, FootJob", а не с синглтона, когда вы примените стратегию, интервьюеру будет похуй на какие-то паттерны=)
))))))))))))))))))
инкапсуляция это сокрытие, понятно же тут всё
После этого ответа, его никто не видел. Поговаривают, что Артем сам пришел к нему в ночи. Задал ему тот проклятый вопрос и схватив, взлетел на стратосферу. Тем самым убив его.
@@ladykamykadze3112 не... Ну серьезно сокрытие же... Только реализации а не данных...
Накинул на вентилятор. =))
Троль)
инкапсуляция - это в первую очередь АБСТРАГИРОВАНИЕ ... какое же количество тупорылых отбитых на всю тупую свою бошку кодеров и учителей и преподов я повидал на своём веку.. СОВЕРШЕННО НИХЕРА НЕ ПОНИМАЮЩИХ что из их рта вылетает.. и соответственно после них такие же ученики-инвалиды умственные выходят.. и уже 20 лет эта цепочка никак не прервётся ))))))))))))))))))))))
почему не начать учить ООП с ПРОЕКТИРОВАНИЯ!!! чтобы люди понимали - НАХЕРА ВООБЩЕ НУЖЕН ООП.. ООП надо учить уже ПОСЛЕ того как вы поймёте ЗАДАЧИ ПРОЕКТИРОВАНИЯ ))))
вот вам самый яркий пример: для чего нужно колесо автомобилю.. ответ: чтобы крутиться... и вот отсюда далее не зная практики представте что вы отлично понимаете что надо поворот проходить дрифтом, подгазовывая на задней передаче )))) --- так же и в ООП.. учат что колесо нужно чтобы крутиться - ДА НЕТ ЖЕ БЛЯДЬ ДЕБИЛЫ-УЧИТЕЛЯ... колесо нужно не для того чтобы крутиться ... Сколько же тупорылых просто наглухо отбитых людей лезет туда, куда им просто нельзя ни при каких условиях лезть.. особенно в процесс обучения.. сколько судеб загубленных, сколько светлых голов сошло с дистанции из-за этих выродков-преподов )))
з.ы.: может сложиться впечатление что я автора гноблю... не, это я о своём о наболевшем )) автор молодец редкостный, что не бухает, не колется - а пытается познавать прекрасное ))
Вы прекрасны, только что дочитал книгу по паттернам и ваше видео более проще и доступнее описывает Стратегию. Спасибо парни)
что за книгу читал ? :)
@@scolopendrachilopoda9704 возможно Head First Паттерны.
Спасибо за разъяснение темы. Оч. круто =)
Господи, это лучший канал по программированию. Спасибо за ваши труды)
Вы просто лучшие, продолжайте
всё понятно, спасибо за контент!
Пожалуйста, снимите новые ролики про паттерны. У вас самая классная подача а главное все понятно и без нудятины.
Чувак, я тебя люблю! Не мог бы ты снимать ну хоть немножечко почаще, пожалуйста. Ещё у тебя голос классный и такая ехидная интонация, будто ты ржешь, это странно, но кайфово. Давай видосики, про что хочешь (:
Только вчера смотрел, а тут Экстрим Код, отлично
Вернулся
Безмерная благодарочка
Ну все понятно:
Класс Worker - девушка, выполняющая определенные услуги за деньги
Класс Handjob - это понятно - ананизм
Класс Footjob - происходит таким же образом, как и handjob, только ногами
Стратегия - взаимозаменять Handjob с помощью Footjob в записимости от сексуальных предпочтений.
Ну так понятнее стало
Бл...ть, я сегодня увидел видео с Паниным и слово Footjob теперь вызывает рвотные порывы. Можете переснять видео с другими примерами?
ФЛЕНОВ ты что его канал смотриш? Зачем тебе?!
хахахах, рил очень понятно))
а BlowJob?
Отличный видос. Если кто-то считает, что недостаточно разобрался, то могу посоветовать первую главу книги Head First: "Паттерны проектирования". Отличный пример с практикой.
хахах, закладки топ, особенно с Winderton'ом, кстати а как вы к нему относитесь?
Спасибо за то что ты есть ❤
Братан, хорош, давай давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот по чаще
*Почему так годно?*
Мужики, давайте побольше паттернов o!o
Т.к. все классические "шаблоны проектирования" - это про имитацию функционального программированиения с помощью ООП, то стратегия, как идеологический предок понятия интерфейса в VB, Java и C#, тут должна быть на первом месте.
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Подбор вкладок сладок!😁👍
Кстати автор, по мимо изложения кучи гов... кхм... сатиры))) очень хорошо и просто объяснил паттерн. Кому нужно:
4:12 - начало
5:08 - конец
10 из 10ти просто огонь!!)))
Ставь лукас если тоже любишь хэнд джоб!
Яы юмщыс даоюяоы, чыпрм озесш ъыозц охрыюхч
|\ /|
(.•ы•.)
Даю подсказку: ROT13
То самое чувство, когда вышел новый видосик
20
ROT20 :)
@@ExtremeCode вот нахера? - теперь сижу цезаря алгоритмы изучаю ,вместо сна )))
"Вики не любит землю"
Справедливо 👌
Thanks!
0:25 гоша дударь и его братья близнецы
Я уже школу закончил, когда вы видос запилили. Жесть. Не надо так
Хорошие видео.
Понял, стратегия - сокрытие данных, спасибо!
Тёма - молодец!)
5 сек видео и я под столом xDDD ты лучший
судя по вкладкам, автор передал в worker только HandJob
Артём Витальевич лучший в мире, ждём видос всей семьёй
Расскажите пожалуйста про ваш опыт работы в геймдеве
Будет ли видос по виндертону?
Качественный контент(но это не точно)
Артем Витальевич "лучший в мире"
Артём Витальевич, спасибо!!! Я немного охуYELL, но это 7-минутное видео для меня было понятнее, чем часовой урок!!! Аж даслёз!!!
Кстати по поводу инкапсуляции...я ее представлял всегда как прием создания каких-то библиотек на которые опираются другие прогеры, не особо парясь как она реализована(через што с точностью до символа '
'). Так вот не кажется ли вам что термин "сокрытие" встречаемый в описании данного подпункта объектной парадигмы в различных источниках связан непосредственно с идеей выделения 2х вещей: бизнес логики и ее реализации, (с явным подчеркиванием того что именно бизнес-логика должна переходить от прогера к прогеру, а никак не реализация ) а не к непосредственному сокрытию данных, как вы упоминали в видосе про ООП? Да и "объединение данных и методов в классе" как то слишком очевидно для такого важного принципа который в случае моего понимания решает проблему написания велосипедов...
Спасибо
Ты лучший
Все что находится в фигурных скобках это и есть инкапсуляция, {капсула} - оболочка. Из книжки Шилдта можно узнать что фигурные скобки инкапсулируют все что в них есть. А все что не помечено пабликом скрывается от "вне скобок". Хош скрыть кусок кода? Возьми его в фигурные скобки.
Благодарю
Я думал Вас уже забрал Garbage Collector жизни
Прикольная отсылка на School 13 - игрооргии в начале
Добрый день.Скажите, как написать батник или скрипт, который ищет заданое слово в любой программе(консоли игры) и совершает закрытие активного окна или убийство процесса?
Артем Витальевич, Инкапсуляция - это слово
Спасибо! Откинулся на табуретке!
Артём Витальевич, ну ты понял...
Если к авторов канала появиться хотя бы одно видео без матов, ребята сообщите мне!
А в чем отличие стратегии от dependency injection?
Вы будете смеятся, но это реально производит впечатление на собеседующих, когда перечисление знакомых паттернов начинаешь со стратегии, а не адаптера/синглтона/фабрики. Причем, иногда его даже не просят объяснить.
Спасибо за видос.
0:35 - у нас так каждый митап
- Лучшая работа в мире.
- Лучшая работа в мире!
Не прошло и месяца!
Артём Витальевич лучший в мире!))
Артем Витальевич ЛУЧШИЙ в мире. ( И это я пишу не потому что совсем не представляю что такое инкапсуляция, а потому что меня зовут так же) )))
чууууувааааааааааакккккк ты лучший бро
Артём Витальевич лучший в мире)
Артём Витальевич ЛУЧШИИИИЙ в мире - забайтил
запели видос про коллекции плес
наконец-то
Ну и что, я теперь состарюсь когда выйдет следующий видос?
Артем Витальевич лучший в мире!
Вообще, этот паттерн можно даже на процедурном стиле сделать. Хороший паттерн.
Лайк за Виндертона на фоне)
Я соскучился
нужен видос по виндертону!
А чет не понял, паттерн инверсия зависимостей основывается на паттерне стратегия ?
Артём Витальевич ЛУЧШИЙ в мире
Хорошее видео, только инкапсуляция это сокрытие.
расскажи еще про паттерны
Показалось очень похоже на паттерн Мост (Bridge). Хотелось бы понять, в чем принципиальное отличие
Твое видео записано с использованием шаблона "Презентация".
В чем разница между стратегией и dependency injection?
Наконец из этого видоса узнал, что пишут видосы на этот канал 2 чела, даже имена их узнал. Коля и Артём 3>. А то думал то ли у меня шиза, то ли микрофон меняет этот чел постоянно.
лучшая работа в мире, ой Артем Витальевич лучший в мире
Неплохо быть масленком:)
Да все ведь понятно ведь! Инкапсуляция - это сокрытие!
P.S. Давай только без бана, плиз.
Антон Валерьевич лучший в мире
Ничего не понимаю, но было интересно
Артём Витальевич ЛУЧШИЙ В МИРЕ
Открыл самые лучшие странички судя по вкладкам)))))
Функции высшего порядка - лучшая реализация стратегии в мире!
- (с) Штрохайм
! Артем лучший Витальевич в мире
Аж, шишка встала
Я ничего не понял, это что получается если использовать интерфейсы то это уже есть паттерн стратегия?
Добрый день, а разжуйте пж разницу Стратегии и Стейт
Ожидал вначале услышать: откиньтесь на спинку сиденья, кресла, табуретки, или бутылки, но в те годы съёмки бутылка ещё не была мейнстримом
когда джаву будешь делоть,питор?
Пародия на сWindertona будет?
Мало кто заметил, что "Вики не любит Землю"
Только сейчас понял, что Артём и Коля живут вместе, если вы понимаете, о чём я
Артем Витальевич лучший в мире