Points To Remember It is a Creational Design Pattern It must be used when you have multiple overloaded constructors or setters Its main purpose it to hide from the user, how the object is to be created . It is advised to make your constructors private when you are using Builder Design Pattern. What is Builder Design Pattern It is a creational design pattern. So it is only responsible for how an object must be created. There may be scenarios where there is a class with many instance variables that may be needed to create an object of the class. For this you might have to create many overloaded constructors. For Example we have a class NutritionFacts that has following instance variables private int servingSize; private int servings; private int calories; private int fat; private int sodium; private int carbohydrate; Then to create the object of the class we can have constructors as follows NutritionFacts cocaCola = new NutritionFacts( 240 , 8 , ...