One advantage of static factory methods is that, unlike constructors, they have names.
A second advantage of static factory methods is that, unlike constructors, they are not required to create a new object each time they're invoked.
The ability of static factory methods to return the same object from repeated invocations allows classes to maintain strict control over what instances exist at any time.
A third advantage of static factory methods is that, unlike constructors, they can return an object of any subtype of their return type.