Паттерны проектирования на 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

ความคิดเห็น • 55

  • @user-wm4kp8hs8g
    @user-wm4kp8hs8g 2 ปีที่แล้ว +16

    Самое понятное объяснение, что мне довелось услышать. Спасибо, я наконец-то понял

  • @user-pe8qh6le7g
    @user-pe8qh6le7g 2 ปีที่แล้ว +9

    Голос просто огонь

  • @romansablin5171
    @romansablin5171 2 ปีที่แล้ว +10

    Превосходные ролики!
    Отличная дикция, понятное объяснение материала, хорошие примеры. Спасибо за работу!

    • @mlr__roal_6867
      @mlr__roal_6867 9 หลายเดือนก่อน +1

      Это автосуфлёр

  • @Fishmr999
    @Fishmr999 2 ปีที่แล้ว +7

    @classmethod будет наверное более pythonic

  • @gunlinux
    @gunlinux 2 ปีที่แล้ว +5

    Качество записи, голос и контент. Подписка

    • @EngineerSpock
      @EngineerSpock  2 ปีที่แล้ว

      Ну это диктор для курса именно этого)

  • @user-th7dw6wi6l
    @user-th7dw6wi6l 2 ปีที่แล้ว +3

    Спасибо я всё понял, аж настроение поднялось. ролик будто какая нибудь Мастерская настроения

  • @kelevra1493
    @kelevra1493 ปีที่แล้ว +1

    Офигенно, спасибо! Походу куплю курс!

  • @air961
    @air961 ปีที่แล้ว

    Класс! Благодарю, всё понятно 🙏

  • @user-je6dz7vz4y
    @user-je6dz7vz4y ปีที่แล้ว

    Соглашусь со многими комментариями. Это самое понятное объяснение паттерна. Все четко и без воды, так еще и приятным голосом. Спасибо!

  • @serengeit9531
    @serengeit9531 ปีที่แล้ว

    К концу видео только понял к чему все шло. спасибо

  • @avbolshakov
    @avbolshakov ปีที่แล้ว +1

    Очень здорово! и само объяснение и подача! Класс! upd а что за шрифт?

    • @EngineerSpock
      @EngineerSpock  ปีที่แล้ว

      Хз надо у автора спросить)

  • @karatemoscow
    @karatemoscow 2 ปีที่แล้ว

    офигенно

  • @sergeyyugay9794
    @sergeyyugay9794 2 ปีที่แล้ว +1

    Илья, у тебя хорошо получилось с ораторским прям топ + над голосом не слабо поработал👍🏻 скажи пожалуйста где проходил курсы?)

    • @EngineerSpock
      @EngineerSpock  2 ปีที่แล้ว

      это актёр озвучания озвучивает

    • @sergeyyugay9794
      @sergeyyugay9794 2 ปีที่แล้ว

      @@EngineerSpock благодарю за ответ, Илья! Но что то сложно верится манера, подача и даже в каких то моментах прям слышна твоя подача материала))

  • @user-bg8hk8zj7w
    @user-bg8hk8zj7w ปีที่แล้ว +1

    спасибо, я кажется после этого видоса поняла ООП

  • @andreybalin9314
    @andreybalin9314 ปีที่แล้ว

    Видео 🔥

  • @cs_dequeue
    @cs_dequeue 2 ปีที่แล้ว

    Fire!!

  • @memeger89
    @memeger89 ปีที่แล้ว +1

    Озвучивает Кураж Бамбей?)

  • @romanbush5164
    @romanbush5164 ปีที่แล้ว

    Спасибо) удобно однако, хотя нарушает принцип DI

  • @rolandwalker4434
    @rolandwalker4434 ปีที่แล้ว

    Я купил курс " Профеcсия python разработчик " на stepik, но там пишет что курс " Не доступен ", это почему ?

    • @EngineerSpock
      @EngineerSpock  ปีที่แล้ว

      Выйдите в список курсов и там всё увидите.

    • @rolandwalker4434
      @rolandwalker4434 ปีที่แล้ว

      @@EngineerSpock Мне пишет "В курсе пока что нет ни одного урока.
      Он пуст =( "

    • @rolandwalker4434
      @rolandwalker4434 ปีที่แล้ว

      @@EngineerSpock Ну так что?

    • @EngineerSpock
      @EngineerSpock  ปีที่แล้ว

      @@rolandwalker4434 в список курсов выйдите

  • @user-wu5ph7dj7x
    @user-wu5ph7dj7x ปีที่แล้ว +1

    Емае, я даже не понял сначала чей канал из за голоса. Только потом внимание обратил

  • @lobanovds
    @lobanovds ปีที่แล้ว

    Как-то слишком просто, что даже не верится

  • @user-cn6kw6uk6z
    @user-cn6kw6uk6z 2 ปีที่แล้ว

    Хорош

  • @pavel_kovtun
    @pavel_kovtun ปีที่แล้ว

    Добрый день! Мне кажется, что в данном видео реализован не фабричный метод, а простая фабрика (simple factory). Здесь ведь отсутствует промежуточное звено, в виде фабрики, которая порождает объекты.

    • @yavener
      @yavener ปีที่แล้ว

      тоже заметил, что нет Creator-а

  • @bolatmukashev2830
    @bolatmukashev2830 2 ปีที่แล้ว +1

    Найс

  • @thealex7671
    @thealex7671 ปีที่แล้ว

    Меня зовут Саша, я диктор канала Мастерская Настроения

  • @imranrahimov6852
    @imranrahimov6852 11 หลายเดือนก่อน

    Лучше использовать classmethod.

  • @romanbush5164
    @romanbush5164 ปีที่แล้ว

    Однако это не объясняет всей пользы метода, и его типичное использование

  • @VaeV1ct1s
    @VaeV1ct1s ปีที่แล้ว +2

    Почему вы учите, не разобравшись в теме? 1:05 это возможно, вы переопределеите метод __init__ . За вайлдкард импорт, я бы выгнал с собеседования(from math import *)

    • @user-yo1gf7ks1g
      @user-yo1gf7ks1g ปีที่แล้ว

      Это плохо ? Можете объяснить почему так нельзя делать ?

    • @VaeV1ct1s
      @VaeV1ct1s ปีที่แล้ว +2

      @@user-yo1gf7ks1g потому что, если так импортить, то вы не контроллируете неймспейс, и забиваете его всем подряд. А когда вы после импорта из ванильной библиотеки, заимпортите свою функцию с именем как у чего то из библиотеки, вы очень долго будете разбираться почему ваша функция работает неверно

  • @akimovvadim4736
    @akimovvadim4736 ปีที่แล้ว

    Интересное видео, только шутки не кстати.

  • @xvostov_k
    @xvostov_k ปีที่แล้ว +2

    Подача материала хорошая, но автор не разбирается в теме.

    • @EngineerSpock
      @EngineerSpock  ปีที่แล้ว

      Очень смешно))) Автор высрал все эти паттерны, когда вы ещё пешком под стол ходили))) он автор нескольких книг по паттернам с переизданием и на разных ЯП

    • @xvostov_k
      @xvostov_k ปีที่แล้ว

      ​@@EngineerSpock Если автор так хорош, как о нем написано, то почему он не слышал про name collision и почему он называет данную реализацию фабричным методом, хотя она им не является. Фабричный метод подразумевает использования полиморфизма от базового класса. А данную реализацию можно отнести разве что к Static Factory.

    • @EngineerSpock
      @EngineerSpock  ปีที่แล้ว

      @@xvostov_k фабричный метод не обязан подразумевать наследование. Про нэйм коллижн автор слышал)

    • @xvostov_k
      @xvostov_k ปีที่แล้ว

      @@EngineerSpock Очень жаль, что вы решили удалить мое последние сообщение, возможно оно могло реально кому-нибудь помочь не запутаться.

    • @EngineerSpock
      @EngineerSpock  ปีที่แล้ว

      @@xvostov_k ничего не удалял

  • @vladimirprin263
    @vladimirprin263 ปีที่แล้ว

    Ни черта не понял... втф

  • @Ameta1996
    @Ameta1996 2 ปีที่แล้ว +2

    А если без директивы @staticmethod?

    • @dasshrs
      @dasshrs 2 ปีที่แล้ว +1

      classmethod и вернуть cls.__init__(x, y)