Builder
The builder design pattern allows you to create a general guideline on how to create an object, then have different implementations on how to build parts of the object.