Birleştirme
- Node.js kursu
- Başlangıç
- Ders 52/116
- 6 dk
Sepet sınıfını CLI ile birleştirirsin.
Birleştirme
Tüm parçalar hazır: Cart sınıfı, addItem, getSubtotal ve printCart metotları. Şimdi bunları main akışında birleştirip sepette iki ürün oluşturacak, sepeti yazdıracak ve toplamı göstereceğiz.
Bu aşamada her metot kendi görevini yapar; main yalnızca sırayla çağırır. İyi tasarlanmış bir program, metotların küçük ve odaklanmış olmasıyla ölçeklenir. Sepete daha sonra yeni bir özellik eklemek istersen, ilgili metodu değiştirmen yeterli olur.
Uçtan uca akış
Sepet uygulamasının tüm parçaları bir araya geldiğinde gerçek bir alışveriş akışı elde edilir: ürünler eklenir, sepet görüntülenir ve toplam hesaplanır. Her metot tek bir işi iyi yapar.
Bu yapıyı ileride bir menü döngüsüyle sararak kullanıcıya seçenekler sunabilirsin. while (choice !== 0) kalıbı 0 girilene kadar menüyü yeniden gösterir. Şimdilik akışı doğrudan çağrılarla yöneteceğiz; etkileşimli menüyü sonraki projelerde göreceksin.
Uygulama Sepeti birleştir
Cart sınıfının tüm metotları hazır. main akışında şu adımları yaz: önce const cart = new Cart() ile sepeti yarat; sonra cart.addItem({ name: "Defter", price: 25, quantity: 2 }) ve cart.addItem({ name: "Kalem", price: 10, quantity: 3 }) ile iki ürün ekle; sonra cart.printCart() ile sepeti yazdır; son olarak console.log("Toplam: " + cart.getSubtotal()) ile toplamı yazdır. Çıktı üç satır olmalı: Defter 25 2, Kalem 10 3, Toplam: 80.
Başlangıç kodu
class Cart {
constructor() {
this.items = [];
}
addItem(product) {
this.items.push(product);
}
getSubtotal() {
let sum = 0;
for (const p of this.items) {
sum += p.price * p.quantity;
}
return sum;
}
printCart() {
for (const p of this.items) {
console.log(p.name + " " + p.price + " " + p.quantity);
}
}
}
// Sepeti yarat, iki ürün ekle, sepeti ve toplamı yazdırÖrnek çözüm
class Cart {
constructor() {
this.items = [];
}
addItem(product) {
this.items.push(product);
}
getSubtotal() {
let sum = 0;
for (const p of this.items) {
sum += p.price * p.quantity;
}
return sum;
}
printCart() {
for (const p of this.items) {
console.log(p.name + " " + p.price + " " + p.quantity);
}
}
}
const cart = new Cart();
cart.addItem({ name: "Defter", price: 25, quantity: 2 });
cart.addItem({ name: "Kalem", price: 10, quantity: 3 });
cart.printCart();
console.log("Toplam: " + cart.getSubtotal());Beklenen çıktı
Defter 25 2 Kalem 10 3 Toplam: 80
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 main tümleşik satırını yaz
cart.printCart();
console.log("Toplam: " + ____);
cart.printCart();
console.log("Toplam: " + cart.getSubtotal());
Açıklama: cart.getSubtotal() sepetteki ara toplamı döndürür.
2 Parçayı işleve eşle
| Kavram | Anlamı |
|---|---|
Cart |
Tüm veriyi tutar |
addItem |
Sepete ekler |
printCart |
Sepeti gösterir |
getSubtotal |
Toplamı verir |
3 Birleştirme aşamasında hangi yapı tüm parçaları çağırır?
// tümleşik akış- class
- if
- for
- main akış Doğru cevap
Açıklama: main akış tüm metotları sırayla çağırır.