Implementacja wzorca projektowego Dekorator w Javascript
Dekorator to strukturalny wzorzec projektowy, który umożliwia rozszerzenie lub zmianę zachowań do istniejących klas dynamicznie podczas działania programu.
Poniżej przykład użycia dekoratora do rozszerzenia funkcjonalności w klasie Tesla:
class Car {
constructor(kind) {
this.kind = kind || "Generic";
}
getInfo() {
return `I'm a ${this.kind} Car`;
}
}
class Tesla extends Car {
constructor() {
super("Tesla");
}
setBatteryStatus(status) {
this.batteryStatus = status;
}
getInfo() {
return `${super.getInfo()} with the battery status: ${this.batteryStatus}`;
}
}
class Toyota extends Car {
constructor() {
super("Toyota");
}
getInfo() {
return super.getInfo();
}
}
export { Tesla, Toyota };