There's a good discussion of this in the general case.
However, I was wondering specifically why the Pattern
class uses the compile
static method to create an object, rather than the constructor?
Seems to me to be more intuitive to use a constructor.