Skip to content

Примеры реализации паттернов проектирования на Python

Notifications You must be signed in to change notification settings

ostapkonst/DesignPatternsOnPython

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Design Patterns On Python

Репозиторий содержит реализации паттернов проектирования на Python 3. Всего реализовано 23 классических паттерна.

Паттерны проектирования — модель решения общих (часто встречающихся) проблем дизайна. Она (модель) описывает проблемы и основные подходы к их решению.

Паттерны делают нашу работу:

  • последовательной
  • понятной
  • надежной

Содержимое

Паттерны разбиты на категории по цели их использования.

Порождающие паттерны

Эти паттерны отвечают за удобное и безопасное создание новых объектов или даже целых семейств объектов:

  • Фабричный метод (factory method) — Определяет общий интерфейс для создания объектов, позволяя подклассам изменять тип создаваемых объектов.
  • Абстрактная фабрика (abstract factory) — Позволяет создавать семейства связанных объектов, не привязываясь к конкретике.
  • Строитель (builder) — Позволяет создавать сложные объекты пошагово.
  • Прототип (prototype) — Позволяет копировать объекты, не вдаваясь в подробности их реализации.
  • Одиночка (singleton) — Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.

Структурные паттерны

Эти паттерны отвечают за построение удобных в поддержке иерархий классов:

  • Адаптер (adapter) — Позволяет объектам с несовместимым интерфейсом работать вместе.
  • Мост (bridge) — Разделяет один или несколько классов на две отдельные иерархии — абстракцию и реализацию.
  • Компоновщик (composite) — Позволяет сгруппировать множество объектов в древовидную структуру и работать с ней.
  • Декоратор (decorator) — Позволяет динамически добавлять объектам новую функциональность.
  • Заместитель (proxy) — Позволяет подставлять вместо реальных объектов специальные объекты-заменители.
  • Легковес (flyweight) — Экономит память, разделяя общее состояние объектов между собой.
  • Фасад (facade) — Предоставляет простой интерфейс к сложной системе, классу или фреймворку.

Поведенческие паттерны

Эти паттерны решают задачи эффективного и безопасного взаимодействия между объектами программы:

  • Цепочка обязанностей (chain of responsibility) — Позволяет передавать запросы последовательно по цепочке обработчиков.
  • Итератор (iterator) — Дает возможность последовательно обходить элементы составных объектов, не раскрывая внутреннего представления.
  • Посредник (mediator) — Позволяет уменьшить связанность множества объектов между собой.
  • Снимок (memento) — Позволяет сохранять текущее и восстанавливать прошлые состояния объектов.
  • Наблюдатель (observer) — Позволяет одним объектам следить и реагировать на изменения других объектов.
  • Состояние (state) — Позволяет объектам менять поведение в зависимости от своего состояния.
  • Стратегия (strategy) — Определяет семейство схожих объектов и помещает каждый из них в собственный класс.
  • Шаблонный метод (template method) — Позволяет подклассам переопределять шаги алгоритма, не меняя общей структуры.
  • Посетитель (visitor) — Позволяет добавлять в программу новые операции,не изменяя классы объектов, над которыми эти операции могут выполняться.
  • Команда (command) — Превращает запросы в объекты, которые заключают в себе само действие и его параметры.
  • Интерпретатор (interpreter) — Определяет представление грамматики для заданного языка и интерпретатор предложений этого языка.

About

Примеры реализации паттернов проектирования на Python

Topics

Resources

Stars

Watchers

Forks