The Factory Method pattern
The following points help us understand the factory method pattern:
- We define an interface to create objects, but instead of the factory being responsible for the object creation, the responsibility is deferred to the subclass that decides the class to be instantiated.
- The Factory method creation is through inheritance and not through instantiation.
- The Factory method makes the design more customizable. It can return the same instance or subclass rather than an object of a certain type (as in the simple factory method).
In the preceding UML diagram, we have an abstract class, Creator
, that contains factoryMethod()
. The factoryMethod()
method has the responsibility of creating objects of a certain type. The ConcreteCreator
class has factoryMethod()
that implements the Creator
abstract class, and this method can change the created object at runtime. ConcreteCreator
creates ConcreteProduct
and makes sure that the object it creates...