From 835f10ff6f697f342d686a40231dafac0afbbace Mon Sep 17 00:00:00 2001 From: Chahrazad650 Date: Sat, 13 Dec 2025 08:12:05 +0100 Subject: [PATCH] =?UTF-8?q?impl=C3=A9mentation=20du=20pattern=20Decorator?= =?UTF-8?q?=20pour=20Car?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/CarDecorator.java | 59 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/CarDecorator.java 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(); + } +}