Decorator Pattern
- Manbodh ratre
- Nov 19, 2023
- 1 min read
Decorator pattern is used to decorate any product, like we can decorate or add number of decoration item, suppose i want to create a pizza store the we can use this pattern to create verity of pizzas
Base Pizza
public interface BasePizza {
public int cost();
}
public class Farmhouse implements BasePizza{
@Override
public int cost() {
return 120;
}
}
public class Magerita implements BasePizza{
@Override
public int cost() {
return 100;
}
}
import designPatterns.DecoratorPattern.BasePizza.BasePizza;
public class ExtraCheese implements BasePizza {
private final BasePizza basePizza;
public ExtraCheese (BasePizza pizza){
this.basePizza = pizza;
}
@Override
public int cost() {
return this.basePizza.cost() + 10;
}
}
import designPatterns.DecoratorPattern.BasePizza.BasePizza;
public class Mashroom implements BasePizza {
private final BasePizza basePizza;
public Mashroom(BasePizza pizza){
this.basePizza = pizza;
}
@Override
public int cost() {
return this.basePizza.cost() + 30;
}
}
import designPatterns.DecoratorPattern.BasePizza.BasePizza;
public class Onion implements BasePizza {
private final BasePizza basePizza;
public Onion(BasePizza pizza){
this.basePizza = pizza;
}
@Override
public int cost() {
return this.basePizza.cost() + 30;
}
}
Main Class
public class Main {
public static void main(String[] arr){
testDecoratorPattern();
}
public static void testDecoratorPattern(){
BasePizza pizza = new ExtraCheese(new Mashroom(new Onion(new Magerita())));
System.out.println(pizza.cost());
}
}
Comments