Що означає "director" у патерні Builder?
Director (Директор) у патерні Builder - це об'єкт, який керує порядком і логікою складання складного продукту, використовуючи білдер, але не знає деталей реалізації цього білдера.
1. Суть ролі
Director відповідає за те, які кроки і в якому порядку потрібно викликати, щоб зібрати продукт. Він не створює об'єкт сам - він координує процес складання, передаючи інструкції білдеру.
2. Навіщо потрібен
- Щоб інкапсулювати алгоритм складання: клієнту не потрібно знати, як саме створюється об'єкт.
- Щоб можна було використовувати той самий білдер із різними сценаріями складання (різні "рецепти" об'єкта).
- Щоб розділити відповідальність: білдер відповідає за деталі, директор - за послідовність.
3. Приклад (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 - це «керівник процесу складання», який визначає «рецепт» створення об'єкта, а не його реалізацію. Він робить процес побудови керованим, відтворюваним і незалежним від конкретних класів.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.