/** * 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(); } }