Builder Pattern

The Builder pattern is useful when you need to create objects with many optional properties.
Ideal for classes with many properties and not all of them are required.