Паттерны проектирования на Python: Паттерн Фабричный метод
HTML-код
- Опубликовано: 4 ноя 2021
- Курсы от EngineerSpock: www.engineerspock.com/offer-y...
Донаты на развитие: pay.cloudtips.ru/p/1f080f72
Это серия роликов из курса по Паттернам (шаблонам) проектирования на Python за авторством Дмитрия Нестерука. EngineerSpock визировал перевод и озвучку. Как получилось - судить вам.
Паттерны проектирования (design patterns), так же известные как шаблоны проектирования или GoF паттерны. GoF расшифровывается как Gang of Four (банда четырёх) - четвёрка, написавшая известную книгу по паттернам проектирования («Приёмы объектно-ориентированного проектирования. Паттерны проектирования») в далёком 1994 году. Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес.
Примеры в той книге были написаны на С++ и Smalltalk.
Шаблон проектирования - выработанный универсальный подход для решения определённой часто возникающей проблемы. Грамотное применение паттернов проектирования - часть философии чистого кода.
Выделяют 3 категории шаблонов проектирования:
- порождающие
Builder - строитель / построитель, Factory Method - фабричный метод, Abstract Factory - абстрактная фабрика, Prototype - прототип, Singleton - одиночка
- структурные - адаптер, мост, компоновщик, декоратор, фасад, приспособленец, заместитель
- поведенческие: этих дофига и больше)
В этом видео мы поговорим именно о шаблоне Фабричный метод (Factory Method Design Pattern), который позволяет улучшить API создания объекта.
Купить полный курс "Паттерны проектирования на Python" можно на платформе Stepik:
stepik.org/z/103603
- используйте купон RUclips чтобы получить скидку ~ 35%
Канал Дмитрия Нестерука на RUclips: / @soloondotnet
Видео курсы Дмитрия на Udemy: www.udemy.com/user/dmitrinest...
Курсы от EngineerSpock: www.engineerspock.com/offer-y...
#it #программирование #айти #ityoutubersru #engineerspock
Самое понятное объяснение, что мне довелось услышать. Спасибо, я наконец-то понял
Офигенно, спасибо! Походу куплю курс!
Спасибо я всё понял, аж настроение поднялось. ролик будто какая нибудь Мастерская настроения
Превосходные ролики!
Отличная дикция, понятное объяснение материала, хорошие примеры. Спасибо за работу!
Это автосуфлёр
Голос просто огонь
Соглашусь со многими комментариями. Это самое понятное объяснение паттерна. Все четко и без воды, так еще и приятным голосом. Спасибо!
Класс! Благодарю, всё понятно 🙏
Качество записи, голос и контент. Подписка
Ну это диктор для курса именно этого)
@classmethod будет наверное более pythonic
К концу видео только понял к чему все шло. спасибо
офигенно
Видео 🔥
Очень здорово! и само объяснение и подача! Класс! upd а что за шрифт?
Хз надо у автора спросить)
Fire!!
спасибо, я кажется после этого видоса поняла ООП
Илья, у тебя хорошо получилось с ораторским прям топ + над голосом не слабо поработал👍🏻 скажи пожалуйста где проходил курсы?)
это актёр озвучания озвучивает
@@EngineerSpock благодарю за ответ, Илья! Но что то сложно верится манера, подача и даже в каких то моментах прям слышна твоя подача материала))
Спасибо) удобно однако, хотя нарушает принцип DI
Хорош
Найс
Я купил курс " Профеcсия python разработчик " на stepik, но там пишет что курс " Не доступен ", это почему ?
Выйдите в список курсов и там всё увидите.
@@EngineerSpock Мне пишет "В курсе пока что нет ни одного урока.
Он пуст =( "
@@EngineerSpock Ну так что?
@@rolandwalker4434 в список курсов выйдите
Озвучивает Кураж Бамбей?)
Как-то слишком просто, что даже не верится
Емае, я даже не понял сначала чей канал из за голоса. Только потом внимание обратил
Добрый день! Мне кажется, что в данном видео реализован не фабричный метод, а простая фабрика (simple factory). Здесь ведь отсутствует промежуточное звено, в виде фабрики, которая порождает объекты.
тоже заметил, что нет Creator-а
Меня зовут Саша, я диктор канала Мастерская Настроения
Лучше использовать classmethod.
Однако это не объясняет всей пользы метода, и его типичное использование
Почему вы учите, не разобравшись в теме? 1:05 это возможно, вы переопределеите метод __init__ . За вайлдкард импорт, я бы выгнал с собеседования(from math import *)
Это плохо ? Можете объяснить почему так нельзя делать ?
@@user-yo1gf7ks1g потому что, если так импортить, то вы не контроллируете неймспейс, и забиваете его всем подряд. А когда вы после импорта из ванильной библиотеки, заимпортите свою функцию с именем как у чего то из библиотеки, вы очень долго будете разбираться почему ваша функция работает неверно
Интересное видео, только шутки не кстати.
Ни черта не понял... втф
Подача материала хорошая, но автор не разбирается в теме.
Очень смешно))) Автор высрал все эти паттерны, когда вы ещё пешком под стол ходили))) он автор нескольких книг по паттернам с переизданием и на разных ЯП
@@EngineerSpock Если автор так хорош, как о нем написано, то почему он не слышал про name collision и почему он называет данную реализацию фабричным методом, хотя она им не является. Фабричный метод подразумевает использования полиморфизма от базового класса. А данную реализацию можно отнести разве что к Static Factory.
@@xvostov_k фабричный метод не обязан подразумевать наследование. Про нэйм коллижн автор слышал)
@@EngineerSpock Очень жаль, что вы решили удалить мое последние сообщение, возможно оно могло реально кому-нибудь помочь не запутаться.
@@xvostov_k ничего не удалял
А если без директивы @staticmethod?
classmethod и вернуть cls.__init__(x, y)