Program to demonstrate how to implement Factory Design Pattern in Java.
1. Animal.java
2. AnimalFactory.java
3. Dog.java
4. Cat.java
5. TestFactoryDesignPattern.java
Output of the program :
Video tutorial to demonstrate how to implement Factory Design Pattern in Java.
1. Animal.java
package com.hubberspot.designpattern.creational.factorymethod; // 1. Create a Animal interface // having a method definition say eat public interface Animal { public void eat(); }
2. AnimalFactory.java
package com.hubberspot.designpattern.creational.factorymethod; // 2. Create a AnimalFactory which // will create instances of concrete // Animals public class AnimalFactory { // 3. Create a static getAnimal method which will // take package name + class name of class whose // instance is to be created. public static Animal getAnimal(String classInfo) { Animal animal = null; try { // 4. Class.forName(String) dynamically loads class // passed as a String to it. // 5. newInstance() method creates a concrete instance of // the class passed to Class.forName() as a String. animal = (Animal) Class.forName(classInfo).newInstance(); } catch (Exception e) { e.printStackTrace(); } // 6. We return the concrete instance. return animal; } }
3. Dog.java
package com.hubberspot.designpattern.creational.factorymethod; // 8. Concrete animal Dog for the Animal interface public class Dog implements Animal { @Override public void eat() { System.out.println("Dog eating .... "); } }
4. Cat.java
package com.hubberspot.designpattern.creational.factorymethod; // 7. Concrete animal Cat for the Animal interface public class Cat implements Animal { @Override public void eat() { System.out.println("Cat eating .... "); } }
5. TestFactoryDesignPattern.java
package com.hubberspot.designpattern.creational.factorymethod; import com.hubberspot.designpattern.creational.factorymethod.Dog; public class TestFactoryDesignPattern { public static void main(String[] args) { // 9. Create a Dog object from the AnimalFactory by passing fully // qualified name for the concrete Dog class Dog dog = (Dog) AnimalFactory.getAnimal( "com.hubberspot.designpattern.creational.factorymethod.Dog" ); dog.eat(); // 10. Create a Cat object from the AnimalFactory by passing fully // qualified name for the concrete Cat class Cat cat = (Cat) AnimalFactory.getAnimal( "com.hubberspot.designpattern.creational.factorymethod.Cat" ); cat.eat(); } }
Output of the program :
Video tutorial to demonstrate how to implement Factory Design Pattern in Java.