Files
archived-L3-racing-game/src/model/car/CarDecorator.java

104 lines
1.9 KiB
Java

package model.car;
import java.awt.Color;
import model.Game;
/**
* {@link CarDecorator} est une classe abstraite servant de base pour
* les décorateurs de voitures.
*
* <p>
* Elle encapsule une voiture existante ({@link Car}) et délègue
* toutes les méthodes à cette voiture. Les sous-classes peuvent
* redéfinir certaines méthodes pour ajouter un comportement
* spécifique (ex. Boost, Drunk, Hybrid).
* </p>
*/
public abstract class CarDecorator implements Car {
/** La voiture encapsulée à décorer */
protected final Car car;
/**
* Construit un décorateur autour d'une voiture existante.
*
* @param car la voiture à décorer
*/
public CarDecorator(Car car) {
this.car = car;
}
@Override
public Car remove() {
return car;
}
@Override
public String accelerate() {
return car.accelerate();
}
@Override
public String decelerate() {
return car.decelerate();
}
@Override
public boolean apply() {
return car.apply();
}
@Override
public void reverse(boolean active) {
car.reverse(active);
}
@Override
public Color getColor() {
return car.getColor();
}
@Override
public String getName() {
return car.getName();
}
@Override
public void consumption(boolean active) {
car.consumption(active);
}
@Override
public int getPosition() {
return car.getPosition();
}
@Override
public int getScore() {
return car.getScore();
}
@Override
public int getRound() {
return car.getRound();
}
@Override
public int getFuel() {
return car.getFuel();
}
@Override
public State getState() {
return car.getState();
}
@Override
public void setup(Game game) {
car.setup(game);
}
@Override
public void end() {
car.end();
}
}