Ein Konstruktor gibt immer eine brandneue Instanz seiner exakten Klasse zurück, mit einem auf die Klasse festgelegten Namen. Eine Factory-Methode ist eine reguläre (häufig statische) Methode, die Objekte erstellt — und gibt Ihnen Freiheit über Benennung, welcher Subtyp zurückgegeben wird, und überhaupt ein neues Objekt erstellt wird.
