There are places where Sun wanted to make it very easy for third parties to write
code and add it into the Sun package seamlessly as if it were totally built-in.
Examples would include JDBC (Java Data Base Connectivity) drivers
and encryption code. They typically do this with a factory method that you pass the
name of the provider of the software or the name of the
specific implementation as a String. It then returns a delegate object that
implements that particular version of the software.