[Added] Abstract Factory Design Pattern
[Refactoring]