Example of the Builder Design Pattern. Useful to hide complexity of object construction and offer a simple-to-use access interface.