Я использую следующие паттерны проектирования:
Порождающие (Creational Рatterns):
- Singleton: Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. Используется для логгеров, конфигурационных менеджеров.
- Factory Method: Определяет интерфейс для создания объекта, но позволяет подклассам решать, какой класс инстанциировать. Делегирует создание объектов подклассам.
- Abstract Factory: Предоставляет интерфейс для создания семейств связанных или зависимых объектов, не указывая их конкретных классов. Применяется для работы с различными наборами связанных объектов, например, для создания элементов GUI для разных операционных систем.
- Builder: Позволяет создавать сложные объекты пошагово. Предоставляет способ получения различных вариантов объекта, используя один и тот же процесс построения. Удобен для объектов с большим количеством необязательных параметров.
Структурные (Structural Patterns):
- Adapter: Позволяет объектам с несовместимыми интерфейсами работать вместе. Оборачивает существующий класс новым интерфейсом.
- Decorator: Динамически добавляет новые обязанности к объекту. Гибкая альтернатив