diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/CarEngineFacade.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/CarEngineFacade.java new file mode 100644 index 0000000000..91f9b79738 --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/CarEngineFacade.java @@ -0,0 +1,32 @@ +package com.baeldung.pattern.facade; + +import com.baeldung.pattern.facade.carsystem.*; + +public class CarEngineFacade { + private static final Integer DEFAULT_COOLING_TEMP = 90; + private static final Integer MAX_ALLOWED_TEMP = 50; + private FuelInjector fuelInjector = new FuelInjector(); + private AirFlowController airFlowController = new AirFlowController(); + private Starter starter = new Starter(); + private CoolingController coolingController = new CoolingController(); + private CatalyticConverter catalyticConverter = new CatalyticConverter(); + + public void startEngine(){ + fuelInjector.on(); + airFlowController.takeAir(); + fuelInjector.on(); + fuelInjector.inject(); + starter.start(); + coolingController.setTemperatureUpperLimit(DEFAULT_COOLING_TEMP); + coolingController.run(); + catalyticConverter.on(); + } + + public void stopEngine(){ + fuelInjector.off(); + catalyticConverter.off(); + coolingController.cool(MAX_ALLOWED_TEMP); + coolingController.stop(); + airFlowController.off(); + } +}