Паттерны проектирования на Python: Паттерн Фабричный метод
ฝัง
- เผยแพร่เมื่อ 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
- используйте купон TH-cam чтобы получить скидку ~ 35%
Канал Дмитрия Нестерука на TH-cam: / @soloondotnet
Видео курсы Дмитрия на Udemy: www.udemy.com/user/dmitrinest...
Курсы от EngineerSpock: www.engineerspock.com/offer-y...
#it #программирование #айти #ityoutubersru #engineerspock
Самое понятное объяснение, что мне довелось услышать. Спасибо, я наконец-то понял
Голос просто огонь
Превосходные ролики!
Отличная дикция, понятное объяснение материала, хорошие примеры. Спасибо за работу!
Это автосуфлёр
@classmethod будет наверное более pythonic
Качество записи, голос и контент. Подписка
Ну это диктор для курса именно этого)
Спасибо я всё понял, аж настроение поднялось. ролик будто какая нибудь Мастерская настроения
Офигенно, спасибо! Походу куплю курс!
Класс! Благодарю, всё понятно 🙏
Соглашусь со многими комментариями. Это самое понятное объяснение паттерна. Все четко и без воды, так еще и приятным голосом. Спасибо!
К концу видео только понял к чему все шло. спасибо
Очень здорово! и само объяснение и подача! Класс! upd а что за шрифт?
Хз надо у автора спросить)
офигенно
Илья, у тебя хорошо получилось с ораторским прям топ + над голосом не слабо поработал👍🏻 скажи пожалуйста где проходил курсы?)
это актёр озвучания озвучивает
@@EngineerSpock благодарю за ответ, Илья! Но что то сложно верится манера, подача и даже в каких то моментах прям слышна твоя подача материала))
спасибо, я кажется после этого видоса поняла ООП
Видео 🔥
Fire!!
Озвучивает Кураж Бамбей?)
Спасибо) удобно однако, хотя нарушает принцип 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)