diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/AirFlowController.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/AirFlowController.java new file mode 100644 index 0000000000..5ee846ea31 --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/AirFlowController.java @@ -0,0 +1,19 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AirFlowController { + + private static final Logger LOGGER = LoggerFactory.getLogger(AirFlowController.class); + private AirFlowMeter airFlowMeter = new AirFlowMeter(); + + public void takeAir() { + airFlowMeter.getMeasurements(); + LOGGER.info("Air provided!"); + } + + public void off() { + LOGGER.info("Air controller switched off."); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/AirFlowMeter.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/AirFlowMeter.java new file mode 100644 index 0000000000..b47f9cfc4a --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/AirFlowMeter.java @@ -0,0 +1,13 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AirFlowMeter { + + private static final Logger LOGGER = LoggerFactory.getLogger(AirFlowMeter.class); + + public void getMeasurements() { + LOGGER.info("Getting air measurements..."); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/CatalyticConverter.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/CatalyticConverter.java new file mode 100644 index 0000000000..7d637cd444 --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/CatalyticConverter.java @@ -0,0 +1,17 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class CatalyticConverter { + + private static final Logger LOGGER = LoggerFactory.getLogger(CatalyticConverter.class); + + public void on() { + LOGGER.info("Catalytic Converter switched on!"); + } + + public void off() { + LOGGER.info("Catalytic Converter switched off!"); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/CoolingController.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/CoolingController.java new file mode 100644 index 0000000000..ae556e685c --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/CoolingController.java @@ -0,0 +1,34 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class CoolingController { + private static final Logger LOGGER = LoggerFactory.getLogger(CoolingController.class); + private static final Integer DEFAULT_RADIATOR_SPEED = 10; + + private Integer temperatureUpperLimit; + private Radiator radiator = new Radiator(); + private TemperatureSensor temperatureSensor = new TemperatureSensor(); + + public void setTemperatureUpperLimit(Integer temperatureUpperLimit) { + LOGGER.info("Setting temperature upper limit to {}", temperatureUpperLimit); + this.temperatureUpperLimit = temperatureUpperLimit; + } + + public void run() { + LOGGER.info("Cooling Controller ready!"); + radiator.setSpeed(DEFAULT_RADIATOR_SPEED); + } + + public void cool(Integer maxAllowedTemp) { + LOGGER.info("Scheduled cooling with maximum allowed temperature {}", maxAllowedTemp); + temperatureSensor.getTemperature(); + radiator.on(); + } + + public void stop() { + LOGGER.info("Stopping Cooling Controller..."); + radiator.off(); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/FuelInjector.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/FuelInjector.java new file mode 100644 index 0000000000..c7905745e4 --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/FuelInjector.java @@ -0,0 +1,23 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FuelInjector { + private static final Logger LOGGER = LoggerFactory.getLogger(FuelInjector.class); + + private FuelPump fuelPump = new FuelPump(); + + public void on(){ + LOGGER.info("Fuel injector ready to inject fuel."); + } + + public void inject() { + fuelPump.pump(); + LOGGER.info("Fuel injected."); + } + + public void off() { + LOGGER.info("Stopping Fuel injector..."); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/FuelPump.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/FuelPump.java new file mode 100644 index 0000000000..900358f8ff --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/FuelPump.java @@ -0,0 +1,13 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FuelPump { + + private static final Logger LOGGER = LoggerFactory.getLogger(FuelPump.class); + + public void pump() { + LOGGER.info("Fuel Pump is pumping fuel..."); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/Radiator.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/Radiator.java new file mode 100644 index 0000000000..6ca6cef9d9 --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/Radiator.java @@ -0,0 +1,21 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Radiator { + + private static final Logger LOGGER = LoggerFactory.getLogger(Radiator.class); + + public void on(){ + LOGGER.info("Radiator switched on!"); + } + + public void off(){ + LOGGER.info("Radiator switched off!"); + } + + public void setSpeed(Integer speed){ + LOGGER.info("Setting radiator speed to {}",speed); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/Starter.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/Starter.java new file mode 100644 index 0000000000..b1f45a0be8 --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/Starter.java @@ -0,0 +1,13 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Starter { + + private static final Logger LOGGER = LoggerFactory.getLogger(Starter.class); + + public void start() { + LOGGER.info("Starting..."); + } +} diff --git a/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/TemperatureSensor.java b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/TemperatureSensor.java new file mode 100644 index 0000000000..d6a94858b4 --- /dev/null +++ b/patterns/facade/src/main/java/com/baeldung/pattern/facade/carsystem/TemperatureSensor.java @@ -0,0 +1,13 @@ +package com.baeldung.pattern.facade.carsystem; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TemperatureSensor { + private static final Logger LOGGER = LoggerFactory.getLogger(TemperatureSensor.class); + + public void getTemperature(){ + LOGGER.info("Getting temperature from the sensor..."); + } + +}