Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ответы на паттерны экзамен

.doc
Скачиваний:
91
Добавлен:
31.05.2022
Размер:
516.61 Кб
Скачать

Название

Строитель (Builder)

Тип

Порождающий

Назначение

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

Преимущества

  • Позволяет создавать продукты пошагово.

  • Позволяет использовать один и тот же код для создания различных продуктов.

  • Изолирует сложный код сборки продукта от его основной бизнес-логики.

Недостатки

  • Усложняет код программы из-за введения дополнительных классов.

  • Клиент будет привязан к конкретным классам строителей, так как в интерфейсе строителя может не быть метода получения результата.

Реализация

Когда ваш код должен создавать разные представления какого-то объекта. Например, деревянные и железобетонные дома.

Схема

Название

Фабричный метод (Factory Method)

Тип

Порождающий

Назначение

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

Преимущества

  • Избавляет класс от привязки к конкретным классам продуктов.

  • Выделяет код производства продуктов в одно место, упрощая поддержку кода.

  • Упрощает добавление новых продуктов в программу.

Недостатки

Может привести к созданию больших параллельных иерархий классов, так как для каждого класса продукта надо создать свой подкласс создателя.

Реализация

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

Когда вы хотите дать возможность пользователям расширять части вашего фреймворка или библиотеки.

Схема