To date I use the following implementation of the builder pattern (as opposed to the implementation described here):
public class Widget {
public static
One advantage of the Builder Pattern that I rarely (if ever) see promoted is that it can also be used to conditionally construct the object, for instance only if all mandatory parameters are correct or if other required resources are available. In that respect they offer similar benefits to a static factory method.