Factory is a design pattern, from the creational patterns category used in OOP to create objects without need to specify class full name. In other words without using new function.
The essence of the Factory method Pattern is to define an interface for creating an object and let the classes that implement the interface decide which class to instantiate.