forked from bugthesystem/design-patterns-and-idioms-in-es6
/
proxy.ats
54 lines (43 loc) · 909 Bytes
/
proxy.ats
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { Logger } from '../logger';
//Real Class
export class Driving {
constructor() {
this.logger = new Logger();
}
startEngine() {
this.logger.log("Engine is started.");
}
hitGas() {
this.logger.log("Car is accelerated.");
}
hitBrake() {
this.logger.log("Car is stopped.");
}
parkCark() {
this.logger.log("Car is parked.");
}
stopEngine() {
this.logger.log("Engine is stopped.");
}
}
//Proxy Class
export class ProxyDriving extends Driving {
constructor() {
this._driving = new Driving();
}
startEngine() {
this._driving.startEngine();
}
hitGas() {
this._driving.hitGas();
}
hitBrake() {
this._driving.hitBrake();
}
parkCark() {
this._driving.parkCark();
}
stopEngine() {
this._driving.stopEngine();
}
}