Node.js
Birleştirme
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.
Örnek çözümü göster
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());
Kendini test et
-
main tümleşik satırını yaz
cart.printCart();
console.log("Toplam: " + ____);
Cevabı göster
cart.printCart();
console.log("Toplam: " + cart.getSubtotal());
-
Parçayı işleve eşle
- Cart
- Tüm veriyi tutar
- addItem
- Sepete ekler
- printCart
- Sepeti gösterir
- getSubtotal
- Toplamı verir
-
Birleştirme aşamasında hangi yapı tüm parçaları çağırır?
// tümleşik akış
Cevabı göster
main akış — main akış tüm metotları sırayla çağırır.
Sıradaki ders: Dizi tanımlama