Xây dựng hệ thống ngân hàng trong Typescript
Để xây dựng hệ thống ngân hàng, mình sẽ bắt đầu với lớp cơ sở Account có các phương thức và thuộc tính cơ bản như balance
, deposit()
, và withdraw()
. Sau đó, mình sẽ tạo các lớp con SavingsAccount
và CheckingAccount
kế thừa từ Account
và mở rộng các phương thức cho phù hợp.
Tạo lớp Account trong Typescript
class Account { protected balance: number; constructor(initialBalance: number) { this.balance = initialBalance; } deposit(amount: number): void { this.balance += amount; console.log(`Deposited ${amount} into the account.`); } withdraw(amount: number): void { if (amount <= this.balance) { this.balance -= amount; console.log(`Withdrawn ${amount} from the account.`); } else { console.log("Insufficient funds."); } } getBalance(): number { return this.balance; } }
Lớp Account có thuộc tính balance
để theo dõi số dư và các phương thức deposit()
, withdraw()
để nạp tiền và rút tiền từ tài khoản. Phương thức getBalance()
sẽ trả về số dư hiện tại trong tài khoản.
Tạo lớp SavingsAccount kế thừa từ Account bằng Typescript
class SavingsAccount extends Account { private interestRate: number; constructor(initialBalance: number, interestRate: number) { super(initialBalance); this.interestRate = interestRate; } calculateInterest(): void { const interest = this.balance * (this.interestRate / 100); this.deposit(interest); console.log(`Added interest of ${interest} to the account.`); } }
Lớp SavingsAccount
mở rộng từ Account
và thêm một thuộc tính interestRate
. Phương thức calculateInterest()
tính toán lãi suất dựa trên số dư và tiến hành nạp vào tài khoản.
Tạo lớp CheckingAccount kế thừa từ Account
class CheckingAccount extends Account { constructor(initialBalance: number) { super(initialBalance); } withdraw(amount: number): void { const fee = 1; // Withdrawal fee const totalAmount = amount + fee; super.withdraw(totalAmount); } }
Lớp CheckingAccount
kế thừa từ Account
và ghi đè phương thức withdraw()
để thêm phí rút tiền vào mỗi lần rút.
Sử dụng các lớp đã tạo
const savingsAcc = new SavingsAccount(1000, 5); savingsAcc.calculateInterest(); // Tính lãi const checkingAcc = new CheckingAccount(500); checkingAcc.withdraw(50); // Rút tiền console.log("Savings Account Balance:", savingsAcc.getBalance()); console.log("Checking Account Balance:", checkingAcc.getBalance());
Kết quả
Deposited 50 into the account. Withdrawn 51 from the account. Savings Account Balance: 1050 Checking Account Balance: 449
Kết quả này có thể thay đổi tùy thuộc vào các giá trị bạn cung cấp khi tạo các tài khoản và thực hiện giao dịch. Trong ví dụ trên, số dư trong tài khoản tiết kiệm tăng thêm số tiền lãi và số dư trong tài khoản thanh toán giảm sau khi rút tiền (bao gồm cả phí rút tiền).
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Tạo quản lý nhân viên với TypeScript
- Tạo hệ thống quản lý học viên với TypeScript
- Tạo lớp Animal với các thuộc tính và phương thức chung cho động vật với TypeScript.
- Tạo lớp cơ sở Component đại diện cho một thành phần giao diện trong TypeScript.
- Tạo quản lý xe với TypeScript
- Tạo lớp hình học với TypeScript
- Xây dựng hệ thống ngân hàng trong Typescript