When to use Factory Design Pattern :
The Factory Method pattern is generally used in the following situations:
- A class cannot anticipate the type of objects it needs to create beforehand.
- A class requires its subclasses to specify the objects it creates.
- You want to localize the logic to instantiate a complex object.
Points on Factory Design Patterns
- Belongs to creational design patterns
- Low coupling and more cohesion
public interface OS {
void printOsName();
}
public class Linux implements OS{
@Override
public void printOsName() {
System.out.println("This is linux operating system");
}
}
public class IOS implements OS{
@Override
public void printOsName() {
System.out.println("This is IOS operating system");
}
}
public class Windows implements OS{
@Override
public void printOsName() {
System.out.println("This is windows operating system");
}
}
public class OSFactory {
public OS getOsInstance(String input) {
if(input.equalsIgnoreCase("Secure")) {
return new IOS();
}else if(input.equalsIgnoreCase("MostUsed")) {
return new Windows();
}else {
return new Linux();
}
}
}
public class FactorDesignPatternDemo {
public static void main(String[] args) {
OS obj;
obj = new OSFactory().getOsInstance("MostUsed");
obj.printOsName();
obj = new OSFactory().getOsInstance("Secure");
obj.printOsName();
obj = new OSFactory().getOsInstance("Others");
obj.printOsName();
}
}
Read Me : (Reference)