Skip to main content

Що означає "director" у патерні Builder?

Director (Директор) у патерні Builder - це об'єкт, який керує порядком і логікою складання складного продукту, використовуючи білдер, але не знає деталей реалізації цього білдера.


1. Суть ролі

Director відповідає за те, які кроки і в якому порядку потрібно викликати, щоб зібрати продукт. Він не створює об'єкт сам - він координує процес складання, передаючи інструкції білдеру.


2. Навіщо потрібен

  • Щоб інкапсулювати алгоритм складання: клієнту не потрібно знати, як саме створюється об'єкт.
  • Щоб можна було використовувати той самий білдер із різними сценаріями складання (різні "рецепти" об'єкта).
  • Щоб розділити відповідальність: білдер відповідає за деталі, директор - за послідовність.

3. Приклад (Java)

java
class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; } public void constructSportsCar() { builder.reset(); builder.setSeats(2); builder.setEngine("V8"); builder.setTripComputer(true); builder.setGPS(true); } }

Тут Director керує процесом складання спорткара, але не знає, який саме об'єкт створюється - Car чи CarManual.


4. Переваги використання

  • Легко змінювати послідовність складання (можна створити нові сценарії без зміни білдера).
  • Можна використовувати один білдер для різних типів продуктів.
  • Спрощує тестування і повторне використання алгоритмів складання.

5. Висновок

Director - це «керівник процесу складання», який визначає «рецепт» створення об'єкта, а не його реалізацію. Він робить процес побудови керованим, відтворюваним і незалежним від конкретних класів.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.