Real-World Example
Consider, you are building a house and you need doors. You can either put on your carpenter clothes, bring some wood, glue, nails and all the tools required to build the door and start building it in your house or you can simply call the factory and get the built door delivered to you so that you don’t need to learn anything about the door making or to deal with the mess that comes with making it.In Plain Words
Simple factory simply generates an instance for client without exposing any instantiation logic to the client.Wikipedia Says
In object-oriented programming (OOP), a factory is an object for creating other objects – formally a factory is a function or method that returns objects of a varying prototype or class from some method call, which is assumed to be “new”.
Programmatic Example
First of all we have a door interface and the implementation:When to Use?
When creating an object involves some logic
When creating an object involves some logic
When creating an object is not just a few assignments and involves some logic, it makes sense to put it in a dedicated factory instead of repeating the same code everywhere.
When you want to hide complexity
When you want to hide complexity
If the instantiation process is complex or requires configuration, a simple factory can encapsulate this complexity and provide a clean interface to clients.