Порождающие | Структурные | Поведенческие |
---|---|---|
|
|
|
Источник: https://refactoring.guru/ru
Создающие классы
Виртуальный конструктор — статический метод, заменяющий new
и не зависящий от типа
|
Фабрика по созданию окон, кнопок, полей ввода в зависимости от менеджера графики (X11, cairo, GtK, Qt, Mate, Windows, MacOS, …)
|
Диалоговое окно, у которого есть фабричный метод createButton
, возвращающий
кнопку в зависимости от графического менеджера
|
Создание разных видов диалоговых окон в зависимости от графического менеджера
|
Клонирование сложного объекта в графическом редакторе
|
Системный логгер
Определящие структуру класса
|
std::queue
|
Приложение для отрисовки компонент использует абстракцию с примитивами, которые, в свою очередь, рисуются благодаря интерфейсу графического менеджера. Последний может быть реализован по-разному (OpenGL, например)
|
Группировка объектов в графическом редакторе
|
Рисование рамки вокруг символов, умляуты на глифах
|
Почти все объекты вокруг
|
Пвторяющиеся элементы объектов в играх
|
std::vector<bool>::reference
Определяют взаимодействие классов
|
Общение с техподдержкой
|
Транзакции в базе данных, std::bind
|
std::vector::iterator
, обход графа в ширину и глубину — два типа итератора
|
Диспетчерская, диалоговое окно с компонентами
|
Сериализация
|
Почтовая рассылка
|
TCP-соединение, переключение окон на экране смартфона
|
Построение маршрута из точки A в точку B для разных средств передвижения
|
Общий ИИ для разных персонажей игры
|
Рекурсивная сериализация в разные форматы (каждый формат — это новый объект Visitor
)