Порождающие шаблоны
Порождающие шаблоны описывают способы создания объектов так, чтобы система оставалась гибкой и не зависела от конкретных реализаций.
Если создавать объекты напрямую через new в разных частях кода, архитектура быстро становится жесткой: сложно заменять реализации, тестировать и масштабировать решения. Порождающие шаблоны решают эту проблему, инкапсулируя логику создания.
Какие шаблоны входят в группу
- Абстрактная фабрика: создает семейства связанных объектов.
- Строитель: отделяет процесс создания сложного объекта от его представления.
- Фабричный метод: делегирует создание подклассам.
- Пул объектов: переиспользует объекты вместо постоянного создания и удаления.
- Прототип: создает объекты через клонирование готового экземпляра.
- Одиночка: гарантирует существование только одного экземпляра класса.
Когда использовать порождающие шаблоны
- Когда код должен работать с интерфейсами, а не с конкретными классами.
- Когда нужно создавать разные семейства объектов (например, для разных платформ или окружений).
- Когда важны контроль жизненного цикла объектов и переиспользование ресурсов.
- Когда логика создания сложная и ее лучше вынести из бизнес-логики.
Практические ориентиры
- Шаблоны этой группы могут как конкурировать, так и дополнять друг друга в одной системе.
Abstract Factory,BuilderиPrototypeиспользуют объект, отвечающий за создание продуктов, но делают это по-разному.Abstract Factoryчасто строится поверхFactory Method, но может опираться и наPrototype.Builderфокусируется на пошаговой сборке сложного объекта, тогда какAbstract Factory- на создании семейства совместимых объектов.Factory Methodобычно связан с наследованием,Prototype- с делегированием и копированием.- Системы с большим количеством
CompositeиDecoratorчасто выигрывают от использованияPrototype.
Источник
Материал страницы основан на обзоре SourceMaking: