top of page

Decorator Pattern

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());
}
}


Recent Posts

See All

Comments


Call 

7869617359

Email 

Follow

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram
Never Miss a Post. Subscribe Now!

Thanks for submitting!

bottom of page