Skip to content

Decorator java

Example Java Decorator Design Pattern Source Code

Component Interface

1
2
3
4
5
6
package edu.redwoods.decorator;

public interface Car {

    public void assemble();
}

Concrete Component

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
package edu.redwoods.decorator;

public class BasicCar implements Car {

    @Override
    public void assemble() {
        System.out.print("Basic Car.");
    }

}

Component Decorator

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package edu.redwoods.decorator;

public class CarDecorator implements Car {

    protected Car car;

    public CarDecorator(Car c){
        this.car=c;
    }

    @Override
    public void assemble() {
        this.car.assemble();
    }

}

Concrete Decorators

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package edu.redwoods.decorator;

public class SportsCar extends CarDecorator {

    public SportsCar(Car c) {
        super(c);
    }

    @Override
    public void assemble(){
        super.assemble();
        System.out.print(" Adding features of Sports Car.");
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package edu.redwoods.decorator;

public class LuxuryCar extends CarDecorator {

    public LuxuryCar(Car c) {
        super(c);
    }

    @Override
    public void assemble(){
        super.assemble();
        System.out.print(" Adding features of Luxury Car.");
    }
}