A factory method handles object creation and encapsulates it in subclass. This decouples the client code in the superclass from the object creation code in the subclass.