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

Các hàm xử lý chuỗi trong Javascript (cắt / tách / nối chuỗi ..)
Chia lấy phần dư / chia lấy phần nguyên trong javascript
Các cách khai báo biến trong Javascript
Các sự kiện (Event) trong Javascript
Hướng tạo thanh search bar bằng CSS
Hàm array.slice() trong Javascript
Tính tổng hai số bằng Javascript (cộng hai số)
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng