Answer

Answer

t.me/js_test

Ответ:

class Car {
  constructor(type, wheels, doors) {
    this.type = type;
    this.wheels = wheels;
    this.doors = doors;
  }

  startEngine() {
    console.log(`${this.type} startEngine`);
  }

  stopEngine() {
    console.log(`${this.type} stopEngine`);
  }
}

class CarFactory {
  static createCar() {
    return new Car("Car", 6, 4);
  }

  static createTruck() {
    return new Car("Truck", 6, 4);
  }
}

Объяснение:

В классе Car нужно хранить всего лишь 3 поля: type, wheels и doors и два метода startEngine и stopEngine для обработки поведения двигателя. А в классе CarFactory нужно создать два статических метода createCar и createTruck которые возвращают инстансы класса Car с разными параметрами.

Код для проверки:

class Car {
  constructor(type, wheels, doors) {
    this.type = type;
    this.wheels = wheels;
    this.doors = doors;
  }

  startEngine() {
    console.log(`${this.type} startEngine`);
  }

  stopEngine() {
    console.log(`${this.type} stopEngine`);
  }
}

class CarFactory {
  static createCar() {
    return new Car("Car", 6, 4);
  }

  static createTruck() {
    return new Car("Truck", 6, 4);
  }
}

const car = CarFactory.createCar();
const truck = CarFactory.createTruck();

console.log(car.wheels); // 4
console.log(truck.wheels); // 6
console.log(truck.doors); // 4
console.log(truck.doors); // 4

car.startEngine(); // Car startEngine
truck.startEngine(); // Truck startEngine
car.stopEngine(); // Car stopEngine
truck.stopEngine(); // Truck stopEngine

Report Page