Decorator
Example - Cars
interface Car {
void assemble();
}
class BasicCar implements Car {
@Override
public void assemble() {
System.out.println("Basic car.");
}
}
class CarDecorator implements Car {
private Car car;
public CarDecorator(Car car) {
this.car = car;
}
@Override
public void assemble() {
car.assemble();
}
}
class SportCar extends CarDecorator {
public SportCar(Car car) {
super(car);
}
@Override
public void assemble() {
super.assemble();
System.out.println("Sport car.");
}
}
class LuxuryCar extends CarDecorator {
public LuxuryCar(Car car) {
super(car);
}
@Override
public void assemble() {
super.assemble();
System.out.println("Luxury car.");
}
}Last updated