One of the most popular design patterns used by software developers is a factory method . It is a creational pattern that helps create an object without the user getting exposed to creational logic. The only problem with a factory method is it relies on the concrete component.