Creation patterns provide mechanisms for creating objects that increase the flexibility and re-usability of code.
The factory: is a creation design pattern that defines an interface for creating objects in a parent class, but delegates the choice of object types to be created to sub-classes.
Chapters:
0:00 Definition of the factory design pattern
3:22 Solution & architecture
15:10 Pseudo code implementation
22:15 Benefits & drawbacks