Шаблоны проектирования (или паттерны проектирования) делятся на несколько категорий в зависимости от их основного назначения и характеристик. Вот основные категории шаблонов проектирования:
- Порождающие шаблоны (Creational Patterns):
- Фабричный метод (Factory Method)
- Абстрактная фабрика (Abstract Factory)
- Одиночка (Singleton)
- Строитель (Builder)
- Прототип (Prototype)
- Структурные шаблоны (Structural Patterns):
- Адаптер (Adapter)
- Мост (Bridge)
- Компоновщик (Composite)
- Декоратор (Decorator)
- Фасад (Facade)
- Прокси (Proxy)
- Поведенческие шаблоны (Behavioral Patterns):
- Цепочка обязанностей (Chain of Responsibility)
- Команда (Command)
- Итератор (Iterator)
- Посредник (Mediator)
- Хранитель (Memento)
- Наблюдатель (Observer)
- Состояние (State)
- Стратегия (Strategy)
- Шаблонный метод (Template Method)
- Посетитель (Visitor)
- Шаблоны архитектур (Architectural Patterns):
- MVC (Model-View-Controller)
- MVP (Model-View-Presenter)
- MVVM (Model-View-ViewModel)
- Слойная архитектура (Layered Architecture)
- Микросервисная архитектура (Microservices)
- Шаблоны управления состоянием (State Management Patterns):
- Redux (Redux)
- Flux (Flux)
- Mobx (Mobx)
- Шаблоны параллелизма и конкурентности:
- Lock (Замок)
- Read-Write Lock (Замок чтения-записи)
- Semaphore (Семафор)
- Monitor (Монитор)
- Future (Фьючерс)
- Promise (Промис)
- Актор (Actor)
- Шаблоны работы с базами данных:
- Active Record (Активная запись)
- Data Mapper (Сопоставитель данных)
- ORM (Object-Relational Mapping, Сопоставление объектов и реляционных данных)
- Шаблоны для веб-разработки:
- MVC (Model-View-Controller)
- Middleware (Промежуточное программное обеспечение)
- RESTful API (RESTful API)
- GraphQL (GraphQL)
- Шаблоны для работы с пользовательским интерфейсом:
- MVC (Model-View-Controller)
- MVP (Model-View-Presenter)
- MVVM (Model-View-ViewModel)
- Фасад (Facade)
- Декоратор (Decorator)
- Наблюдатель (Observer)
- Команда (Command)
- Шаблоны для тестирования:
- Мок (Mock)
- Фиктив (Stub)
- Заглушка (Dummy)
- Фабрика тестовых объектов (Test Data Builder)
- Использование вмешательства (Test Spy)
- Прототип (Test Data Factory)
Каждая из этих категорий содержит шаблоны, разработанные для решения определенных классов задач и проблем в разработке программного обеспечения. Выбор конкретного шаблона зависит от контекста и требований вашего проекта.