Builder Design Pattern: useful for hiding the complexity of the object construction while presenting a simple-to-use access interface.