JavaScript Паттерны #10 - Composite (Компоновщик)

preview_player
Показать описание
#YauhenK #webDev #JS #JSPatterns

Всех приветствую в курсе «JavaScript Паттерны».
В данном видео-курсе мы с вами рассмотрим самые распространённые паттерны проектирования, которые используются при разработке.
Паттерны, или шаблоны - это определённые, зарекомендовавшие себя конструкции, которые служат для решения типовых задач программирования.
Рассматривать мы их с вами будем на примере языка JavaScript в синтаксисе ES6.

✒ Репозиторий курса:

✒ Используемые ресурсы и инструменты:

✒ Полезные ссылки:

✒ Полный список готовых и планируемых курсов:

✒ Автор курса:

Рекомендации по теме
Комментарии
Автор

Thank you for making the examples in English! I can't get a single word of what you say but I understand the concepts by reading your clear and easy to follow examples.

cristianquintero
Автор

Thanks man. The Simplicity of explanation is what makes you shine😊🎉

tigranharutyunyan
Автор

Понял только с 3 раза.Спасибо за видео

vragechannel
Автор

Большое спасибо за видео и вложенный труд. Не удержался: "Кузов в свою очередь состоит из каркаса, слоя шпаклевки, краски, лака..." Про слой шпаклевки в только что созданном авто - просто упал от смеха, сразу битая Audi. Видео сделало мой вечер, спасибо.

VadymTymchuk
Автор

Я извиняюсь, так как может чего-то не понял, но где тут древовидная структура? Есть только дри лежащих на одном уровне обьекта, а вложенных нет

xcoufnj
Автор

Круто очень понятно, понятней уж некуда наверно (без шуток)

alexanderstepin
Автор

Зачем наследовать composite от equipment? Тащим не нужные методы в него, надо заглушки ставить - антипаттерн по SOLID

artemtereza
Автор

Очень интересно, но ничего не понятно

ybfduye
Автор

//Вот так думаю проще и понятнее

class Engine {
constructor(price) {
this.price = price;
}
}

class Body {
constructor(price) {
this.price = price;
}
}

class Tools {
constructor(price) {
this.price = price;
}
}

//Компоновщик, который будет просчитывать общую стоимость оборудования
class Composite {
constructor() {
this.equipments = [];
}

add(equipment) {

}

getPrice() {
return this.equipments
.map(item => item.price)
.reduce((acc, elem) => acc + elem);
}
}

const сomposite = new Composite();

сomposite.add(new Engine(800));
сomposite.add(new Body(3000));
сomposite.add(new Tools(4000));

console.log(`Общая стоимость авто: ${сomposite.getPrice()}`); //Общая стоимость авто: 7800

pavelst