Slide 43
Slide 43 text
42
2. 状態(ステート)の管理
Ex) ShoppingCart クラス
● カートに⼊っている商品の状態を
管理できる
● 1つのクラスにて状態を管理しながら
様々な関連処理をまとめられるクラス
の良いところ
クラスを作成しようとする動機 2/4
class ShoppingCart {
private items: { name: string; price: number }[] = []; // カート内の商
品(状態)
// 商品を追加するメソッド(状態を変更)
addItem(name: string, price: number): void {
if (price < 0) {
console.error("価格が不正です。");
return;
}
this.items.push({ name, price });
console.log(`${name} をカートに追加しました。`);
}
// 合計金額を計算するメソッド(状態を利用)
calculateTotal(): number {
return this.items.reduce((total, item) => total + item.price, 0);
}
// カートの中身を表示するメソッド(状態を利用)
displayItems(): void {
... // 長くなりそうなので省略
}
}
// 利用例
const cart = new ShoppingCart();
cart.addItem("リンゴ", 150);
cart.addItem("バナナ", 100);
// cart.items.push({ name: "不正な商品", price: -50 }); // privateなので
直接アクセスできない
cart.displayItems();