Skip to content

Latest commit

 

History

History

Patterns

Шаблоны проектирования

Выделяют три типа паттернов:

  • Порождающие - представляют собой механизмы инициализации, позволяют создавать объекты удобным способом.
  • Структурные - определяют отношения между классами и объектами, позволяя им работать совместно.
  • Поведенческие - упрощают взаимодействие между сущностями.

Порождающие

  • singleton (Одиночка) - ограничивает создание одного экземпляра класса, обеспечивает доступ к его единственному объекту.

  • factory (Фабрика) - используется, когда у нас есть суперкласс с несколькими подклассами и на основе ввода, нам нужно вернуть один из подкласса.

  • Abstract factory (Абстрактная фабрика) - используем супер фабрику для создания фабрики, затем используем созданную фабрику для создания объектов.

  • Builder (Строитель) - используется для создания сложного объекта с использованием простых объектов. Постепенно он создает больший объект от малого и простого объекта.

  • Prototype (Прототип) - помогает создать дублированный объект с лучшей производительностью, вместо нового создается возвращаемый клон существующего объекта.

Структурные

  • Adapter (Адаптер) - это конвертер между двумя несовместимыми объектами. Используя паттерн адаптера, мы можем объединить два несовместимых интерфейса.
  • Composite (Компоновщик) - использует один класс для представления древовидной структуры.
  • Proxy (Заместитель) - представляет функциональность другого класса.
  • Flyweight (Легковес) - вместо создания большого количества похожих объектов, объекты используются повторно.
  • facade (Фасад) - беспечивает простой интерфейс для клиента, и клиент использует интерфейс для взаимодействия с системой.
  • Bridge (Мост) - делает конкретные классы независимыми от классов реализации интерфейса.
  • Decorator (Декоратор) - добавляет новые функциональные возможности существующего объекта без привязки его структуры.

Поведенческие

  • Template Method (Шаблонный метод) - определяющий основу алгоритма и позволяющий наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.
  • Mediator (Посредник) - предоставляет класс посредника, который обрабатывает все коммуникации между различными классами.
  • Chain of Responsibility (Цепочка обязанностей) - позволяет избежать жесткой зависимости отправителя запроса от его получателя, при этом запрос может быть обработан несколькими объектами.
  • Observer (Наблюдатель) - позволяет одним объектам следить и реагировать на события, происходящие в других объектах.
  • Strategy (Стратегия) - алгоритм стратегии может быть изменен во время выполнения программы.
  • Command (Команда) - интерфейс команды объявляет метод для выполнения определенного действия.
  • State (Состояние) - объект может изменять свое поведение в зависимости от его состояния.
  • Visitor (Посетитель) - используется для упрощения операций над группировками связанных объектов.
  • Interpreter (Интерпретатор) - определяет грамматику простого языка для проблемной области.
  • Iterator (Итератор) - последовательно осуществляет доступ к элементам объекта коллекции, не зная его основного представления.
  • Memento (Хранитель) - используется для хранения состояния объекта, позже это состояние можно восстановить.