Factory Design Pattern Example in Java
This example about, How to Create a Factory Design Pattern Example in Java. The example was tested and output has been shared in the post.
What is the Factory Pattern?
#1 Pizza.java
package com.dineshkrish; public abstract class Pizza { public abstract String getName(); public abstract double getPrice(); }
#2 CheesePizza.java
package com.dineshkrish; public class CheesePizza extends Pizza { private String pizzaName; public CheesePizza(String pizzaName) { this.pizzaName = pizzaName; } @Override public double getPrice() { return 100; } @Override public String getName() { return pizzaName; } }
#3 ChickenPizza.java
package com.dineshkrish; public class ChickenPizza extends Pizza { private String pizzaName; public ChickenPizza(String pizzaName) { this.pizzaName = pizzaName; } @Override public double getPrice() { return 150; } @Override public String getName() { return pizzaName; } }
#4 PepperoniPizza.java
package com.dineshkrish; public class PepperoniPizza extends Pizza { private String pizzaName; public PepperoniPizza(String pizzaName) { this.pizzaName = pizzaName; } @Override public double getPrice() { return 120; } @Override public String getName() { return pizzaName; } }
#5 PizzaFactory.java
package com.dineshkrish; public class PizzaFactory { public Pizza getOrder(String pizzaName) { Pizza pizza = null; if (pizzaName != null && !pizzaName.isEmpty()) { if ("Chicken".equalsIgnoreCase(pizzaName)) { pizza = new ChickenPizza("Chicken"); } else if ("Cheese".equalsIgnoreCase(pizzaName)) { pizza = new CheesePizza("Cheese"); } else if ("Pepperoni".equalsIgnoreCase(pizzaName)) { pizza = new PepperoniPizza("Pepperoni"); } } return pizza; } }
#6 Store.java
package com.dineshkrish; import java.util.Scanner; public class Store { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); PizzaFactory factory = new PizzaFactory(); System.out.println("Pick from Menu\n1. Chicken Pizza\n2. Cheese Pizza\n3. Pepperoni Pizza"); System.out.println("Enter your choice : "); int choice = scanner.nextInt(); Pizza pizza = null; switch (choice) { case 1: pizza = factory.getOrder("Chicken"); break; case 2: pizza = factory.getOrder("Cheese"); break; case 3: pizza = factory.getOrder("Pepperoni"); break; default: System.out.println("No such Item available try again!!!"); main(args); break; } if (pizza != null) { System.out.println("The " + pizza.getName() + " pizza price is " + pizza.getPrice() + "$"); } scanner.close(); } }
Output
Pick from Menu
1. Chicken Pizza
2. Cheese Pizza
3. Pepperoni Pizza
Enter your choice :
1
The Chicken pizza price is 150.0$
More from my site

Hello, folks, I am a founder of idineshkrishnan.com. I love open source technologies, If you find my tutorials are useful, please consider making donations to these charities.
No responses yet