The Factory Method design pattern solves problems like:
How can an object be created
so that subclasses can redefine which class to instantiate?
How can a class defer instantiation to subclasses?
See Applicability section for all problems Factory Method can solve. See Solution section for how Factory Method solves the problems.