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$

Tags:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *