Шпаргалка по шаблонам проектирования :: Cетевой уголок Majestio

Шпаргалка по шаблонам проектирования


Данная статья представляет собой шпаргалку по шаблонам проектирования с примерами на языках программирования С++ и Dart. Часть информации была взята из ресурсов, опубликованных на Хабре, а также из раздела сайта refactoring.guru. В шпаргалке будет рассмотрено 23 шаблона проектирования "Банды Четырех".

Условные обозначения отношений между классами

В диаграммах подразделов будут использованы следующие обозначения:

Агрегация (aggregation) Описывает связь «часть»–«целое», в котором «часть» может существовать отдельно от «целого». Ромб указывается со стороны «целого».
Композиция (composition) Подвид агрегации, в которой «части» не могут существовать отдельно от «целого».
Зависимость (dependency) Изменение в одной сущности (независимой) может влиять на состояние или поведение другой сущности (зависимой). Со стороны стрелки указывается независимая сущность.
Обобщение (generalization) Отношение наследования или реализации интерфейса. Со стороны стрелки находится суперкласс или интерфейс.

Порождающие паттерны проектирования (Creational)

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

  1. Абстрактная фабрика (Abstract factory)
  2. Одиночка (Singleton)
  3. Прототип (Prototype)
  4. Строитель (Builder)
  5. Фабричный метод (Factory Method)

Структурные паттерны проектирования (Structural)

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

  1. Адаптер (Adapter)
  2. Декоратор (Decorator)
  3. Заместитель (Proxy)
  4. Компоновщик (Composite)
  5. Мост (Bridge)
  6. Приспособленец (Flyweight)
  7. Фасад (Facade)

Поведенческие паттерны проектирования (Behavioral)

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

  1. Интерпретатор (Interpreter)
  2. Итератор (Iterator)
  3. Команда (Command)
  4. Наблюдатель (Observer)
  5. Посетитель (Visitor)
  6. Посредник (Mediator)
  7. Состояние (State)
  8. Стратегия (Strategy)
  9. Хранитель (Memento)
  10. Цепочка обязанностей (Chain of responsibility)
  11. Шаблонный метод (Template method)
Рейтинг: 0/5 - 0 голосов