Паттерны проектирования на Python: Паттерн Прототип
HTML-код
- Опубликовано: 18 ноя 2021
- Подписка на Boosty: boosty.to/engineerspock Донаты на развитие: pay.cloudtips.ru/p/1f080f72 Курсы от EngineerSpock: www.engineerspock.com/offer-y...
Это серия роликов из курса по Паттернам (шаблонам) проектирования на Python за авторством Дмитрия Нестерука. EngineerSpock визировал перевод и озвучку. Как получилось - судить вам.
Паттерны проектирования (design patterns), так же известные как шаблоны проектирования или GoF паттерны. GoF расшифровывается как Gang of Four (банда четырёх) - четвёрка, написавшая известную книгу по паттернам проектирования («Приёмы объектно-ориентированного проектирования. Паттерны проектирования») в далёком 1994 году. Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес.
Примеры в той книге были написаны на С++ и Smalltalk.
Шаблон проектирования - выработанный универсальный подход для решения определённой часто возникающей проблемы. Грамотное применение паттернов проектирования - часть философии чистого кода.
Выделяют 3 категории шаблонов проектирования:
- порождающие
Builder - строитель / построитель, Factory Method - фабричный метод, Abstract Factory - абстрактная фабрика, Prototype - прототип, Singleton - одиночка
- структурные - адаптер, мост, компоновщик, декоратор, фасад, приспособленец, заместитель
- поведенческие: этих дофига и больше)
В этом видео мы поговорим именно о шаблоне Прототип (Factory Method Design Pattern), который позволяет реализовать политику репликации объекта.
Купить полный курс "Паттерны проектирования на 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 #программирование #программист #разработка
Диктора на центральное питоновское телевидение,пожалуйста!
+
информативненько, спасибо.
Спасибо, было интересно!
Спасибо)
Я ожидал в конце добавления классметода copy_with в класс Person
реализация паттерна прототип находится во встроенной библиотеке copy в функции deepcopy выходит?
или для класса нужно будет всё же магические методы, но в данном примере в этом нет необходимости?
Ок, а паттерн в чем? использование deepcopy?
Отличный материал, но отдельно, озвучка на сверх уровне!
а можно copy.deepcopy как то вшить в сам класс?
Спасибо! Посоветуйте пожалуйста по паттернам питона книгу... "Паттерны разработки на Python" Гарри Персивалля, на русском норм? Или что-то другое...
Design Patterns банда четырех для начала. Паттерны не привязаны к конкретному языку, хотя реализации порой отличаются
я не очень силен в программировании, но думаю с адресами так происходит, потому что Джон и Джейн не могут жить друг без друга💔
а где паттерн -то ? просто объяснение работы deepcopy ...
Очень интересное и подробное описание поведения. Респект.
Но я все больше понимаю, что для питона очень важно знание не только, так сказать, базового синтаксиса, а еще огромное количество функций, шаблонов(или шаблонизаторов?), библиотек и прочих наворотов и конструкций. А это все не так просто, как заявляют "питонисты", рекламируя этот язык, как очень простой.
Ну это так везде. При прочих равных, питон действительно гораздо проще всех остальных ходовых яп.
@@EngineerSpock И на кой ляд принудительные отступы придуманы? По моему, это излишество, которое тоже не очень удобное.
@@obehobeh9984 а как без отступов? Скобки ставить? Есть множество языков с отступами. Или вы о чём-то другом?
@@EngineerSpock Принудительные отступы в коде я встречал только в питоне. Это, можно сказать, уже синтаксис питона. Зачем?
@@obehobeh9984 вы чего вместо них хотите? Без отступов?)
А что если у обьекта который копируем приватные атрибуты ? тогда не получится так сделать
В питоне нет приватных аттрибутов
Я не понял некоторых вещей:
Почему глубокая копия круче чем инстанирование (наверное в том что это позволяет не проверять на корректность аргументы, когда уже есть объект с похожими параметрами)
Почему глубокая копия имеет такое пафосное название "шаблон проектирования прототип"
Я ещё понимаю наблюдатель, там действительно есть какая-то логика в том чтобы называть это "шаблон проектирования", а тут в чём прикол?
Шаблон проектирования не подразумевает сам по себе какой-то зубодробительности. Вам кажется, что наблюдатель достоин называться шаблоном, лишь потому что в питоне нет встроенных ивентов как в сишарпе) то есть сишарпер с таким же посылом может заявить в чем прикол наблюдателя называть шаблоном, если это всего лишь механизм ивентов?
Все проблемы из-за баб
весьма спорно