The step builder pattern is an extension of the builder pattern that fully guides the user through the creation of the object with no chances of confusion. 
The intent of the Step Builder design pattern is to separate the construction of a complex object from its representation by creating defined steps and exposing to the user only selected methods per time.
Advantages of using the Step Builder over the Builder pattern
- The user will see only one or few selected methods per time during the Object creation.
- Based on the user choice different paths can be taken during the Object creation.
- The final build step will be available only at the end, after all mandatory steps are completed, returning an Object in a consistent state.
- The user experience will be greatly improved by the fact that he will only see the next step methods available.