Галерея Builder Pattern: 7 шедевров создания объектов. Часть I
🎨 Галерея Builder Pattern: 7 шедевров создания объектов. Часть I
Создавать тестовые данные вручную — как рисовать «Чёрный квадрат» пальцами. Возможно, но больно! 💢 Билдеры — ваши кисти и резцы. Выбирайте инструмент как истинный мастер!
🖼️ Моя исповедь куратора
Когда-то я писала объекты, как Ван Гог в период безумия — хаотично и страстно. Пока однажды сгенерированные данные не сломали прод… Теперь я создаю данные с изяществом да Винчи. Добро пожаловать на выставку)))
🏛️ Зал 1: Классическое искусство
1️⃣ «Натюрморт с if/else» (Ветвление или Conditional Builder Pattern)
Стиль: Примитивизм
setAge(age) {
if (age < 0) this.user.age = 0; // "Младенец с чашей"
else if (age > 120) this.user.age = 120; // "Старик у моря"
else this.user.age = age; // "Портрет неизвестного"
return this;
}
🖌️ Критики говорят:
“Наивно! Очаровательно в простоте, но сложные композиции превращаются в «Гернику»”
2️⃣ «switch: Готические витражи» (Перечисление или Enumeration Builder Pattern)
Стиль: Средневековая иконопись
switch(role) {
case 'admin': // Святой Пётр с ключами
this.user.permissions = ['all'];
break;
case 'moderator': // Ангел-хранитель
this.user.permissions = ['read','edit'];
break;
}
🖌️ Критики говорят:
“Строгая симметрия! Но новый святой потребует перестройки собора”
🧭 Правила куратора
Не вешайте авангард в классическую раму
📚 Хотите углубиться в тему? Изучите подробное руководство по Builder Pattern на Refactoring.Guru
Нужна помощь? Присоединяйтесь к моему Telegram-каналу @qawithlove