-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathApp.ts
36 lines (22 loc) · 896 Bytes
/
App.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { MoneyTransfer, BankAccount, WireTransfer, WireTransferProxy } from "./Proxy"
export default class ProxyExample {
transfer: MoneyTransfer
constructor() {
this.transfer = new WireTransfer()
this.run()
this.transfer = new WireTransferProxy()
this.run()
}
run(): void {
let creditor = new BankAccount(500)
let debitor = new BankAccount(500)
console.log(`Creditor balance: ${creditor.getBalance()}$`)
console.log(`Debitor balance: ${debitor.getBalance()}$`)
let result = this.transfer.transfer(1000, debitor, creditor)
if(result) console.log("Transfer complete")
else console.log("Transfer failed")
console.log(`Creditor balance: ${creditor.getBalance()}$`)
console.log(`Debitor balance: ${debitor.getBalance()}$`)
console.log("---")
}
}