The factory pattern is a popularly used design pattern and it is very useful to restrict clients from knowing the actual business logic methods, it is useful to create a decoupled system, and it is useful to eliminate object creation in a client environment. Intent : 1. Creates objects without exposing the instantiation logic to the client. 2. Refers to the newly created object through a common interface.