Будівник (шаблон проектування)
Матеріал з Вікіпедії — вільної енциклопедії.
Будівник (англ. Builder) - шаблон проектування, відноситься до класу твірних шаблонів.
Зміст |
[ред.] Призначення
Відокремлює конструювання складного об'єкту від його подання, таким чином у результаті одного й того ж процесу конструювання можуть бути отримані різні подання.
[ред.] Мотивація
[ред.] Застосовність
Слід використовувати шаблон Будівник коли:
- алгоритм створення складного об'єкту не повинен залежати від того, з яких частин складається об'єкт та як вони стикуються поміж собою;
- процес конструювання повинен забезпечити різні подання об'єкту, що конструюється.
[ред.] Структура

UML діаграма, що описує структуру шаблону проектування Будівник
- Builder – будівник:
- визначає абстрактний інтерфейс для створення частин об'єкту Product;
- ConcreteBuilder – конкретний будівник:
- конструює та збирає докупи частини продукту шляхом реалізації інтерфейсу Builder;
- визначає подання, що створюється, та слідкує на ним;
- надає інтерфейс для доступу до продукту;
- Director – управитель:
- конструює об'єкт, користуючись інтерфейсом Builder;
- Product – продукт:
- подає складний конструйований об'єкт. ConcreteBuilder будує внутрішнє подання продукту та визначає процес його зборки;
- вносить класи, що визначають складені частини, у тому числі інтерфейси для зборки кінцевого результату з частин.
[ред.] Відносини
- клієнт створює об'єкт-управитель Director та конфігурує його потрібним об'єктом-будівником Builder;
- управитель повідомляє будівника про те, що потрібно побудувати наступну частину подукту;
- будівник оброблює запити управителя та додає нові частини до продукту;
- клієнт забирає продукт у будівника.

UML діаграма, що описує взаємовідносини між будівником та клієнтом
[ред.] Джерела
- Design Patterns: Elements of Reusable Object-Oriented Software