2.5 Builder

Builder is another powerful pattern that becomes very useful when trying to build complex objects. Many times in software development, we need to create a large complex object, but don't always have all the information needed to build it all at once. Maybe we get little pieces that we need over time. If that's the case, the builder pattern is the one for you.