diff --git a/src/CarDecorator.java b/src/CarDecorator.java new file mode 100644 index 0000000..7cc6371 --- /dev/null +++ b/src/CarDecorator.java @@ -0,0 +1,59 @@ +/** + * Décorateur abstrait pour une voiture. + * + * Il encapsule une voiture existante et délègue + * toutes les actions à celle-ci. + * + * Pattern Decorator : on ajoute un comportement + * sans modifier la classe Car. + */ +public abstract class CarDecorator { + + protected final Car car; + + public CarDecorator(Car car) { + this.car = car; + } + + // --- Délégation --- + + public void run() { + car.run(); + } + + public int getFuel() { + return car.getFuel(); + } + + public int getRound() { + return car.getRound(); + } + + public int getScore() { + return car.getScore(); + } + + public int getPos() { + return car.getPos(); + } + + public Car.State getState() { + return car.getState(); + } + + public String accelerate() { + return car.accelerate(); + } + + public String decelerate() { + return car.decelerate(); + } + + public String getName() { + return car.getName(); + } + + public java.awt.Color getColor() { + return car.getColor(); + } +}