Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Car {
- start(typeEngine) {
- const engine = this.createEngine(typeEngine);
- engine.start();
- }
- createEngine(typeEngine) {
- throw new Error('You have to implement the method createEngine!');
- }
- }
- class MyCar extends Car {
- createEngine(typeEngine) {
- let engine;
- if (typeEngine === 'Jet') {
- engine = new Jet();
- } else if (typeEngine === 'Gas') {
- engine = new Gas();
- } else {
- engine = new Brayton();
- }
- return engine;
- }
- }
- class CarFactory {
- createCar() {
- throw new Error('You have to implement the method createCar!');
- }
- }
- class JetCarFactory extends CarFactory {
- createCar() {
- return new MyCar('Jet');
- }
- }
- class GasCarFactory extends CarFactory {
- createCar() {
- return new MyCar('Gas');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement