Factory methods

Factory methods are static methods that return an instance of the native class. Examples in the JDK: Factory methods: Common names for factory methods include getInstance and valueOf. These names are not mandatory - choose whatever makes sense for each case.


public final class ComplexNumber {

  * Static factory method returns an object of this class.
  public static ComplexNumber valueOf(float real, float imaginary) {
    return new ComplexNumber(real, imaginary);

  * Caller cannot see this private constructor.
  * The only way to build a ComplexNumber is by calling the static 
  * factory method.
  private ComplexNumber(float real, float imaginary) {
    this.real = real;
    this.imaginary = imaginary;

  private float real;
  private float imaginary;


See Also :
Immutable objects
Private constructor
Implementing toString
Data access objects
Avoid clone
Abstract Factory