ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ на Rust
Каталог Rust примеров
Порождающие паттерны

Абстрактная фабрика
Позволяет создавать семейства связанных объектов, не привязываясь к конкретным классам создаваемых объектов.

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

Фабричный метод
Определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.

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

Одиночка
Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Структурные паттерны

Адаптер
Позволяет объектам с несовместимыми интерфейсами работать вместе.

Мост
Разделяет один или несколько классов на две отдельные иерархии — абстракцию и реализацию, позволяя изменять их независимо друг от друга.

Компоновщик
Позволяет сгруппировать множество объектов в древовидную структуру, а затем работать с ней так, как будто это единичный объект.

Декоратор
Позволяет динамически добавлять объектам новую функциональность, оборачивая их в полезные «обёртки».

Фасад
Предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку.

Легковес
Позволяет вместить бóльшее количество объектов в отведённую оперативную память. Легковес экономит память, разделяя общее состояние объектов между собой, вместо хранения одинаковых данных в каждом объекте.

Заместитель
Позволяет подставлять вместо реальных объектов специальные объекты-заменители. Эти объекты перехватывают вызовы к оригинальному объекту, позволяя сделать что-то до или после передачи вызова оригиналу.
Поведенческие паттерны

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

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

Итератор
Даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления.

Посредник
Позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник.

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

Наблюдатель
Создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах.

Состояние
Позволяет объектам менять поведение в зависимости от своего состояния. Извне создаётся впечатление, что изменился класс объекта.

Стратегия
Определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.

Шаблонный метод
Определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы. П��ттерн позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры.

Посетитель
Позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться.