Verwenden Sie die Factory-Methode, wenn Sie eine Unterklasse instanziieren und der Client-Code nicht dafür verantwortlich sein soll, zu entscheiden, welche bestimmte Unterklasse instanziiert wird.
Dies ist nützlich, da Sie dadurch den Clientcode nicht ändern müssen, wenn Sie ändern müssen, welche Klasse instanziiert wird. Das Ändern von vorhandenem Code ist eine schlechte Praxis, da er normalerweise fehleranfällig ist.
Ein Beispiel wären Unterklassen, in denen die Daten in aufsteigender Reihenfolge, jedoch auf unterschiedliche Weise sortiert werden. Jeder Weg ist für eine bestimmte Art von Daten optimal. Beispiel: teilweise sortierte Daten, Daten, die Zahlen usw. sind. Der Client-Code ist eine Klasse, die nur das Drucken von Daten verarbeitet. Ein Code, der entscheidet, welche Sortierklasse in der Client-Klasse instanziiert wird, würde sie zu einer komplexen Klasse machen. Mit anderen Worten, Sie haben in diesem Fall mehr als eine Verantwortung, entscheiden, welche Sortierklasse optimal ist, und drucken Daten. Durch Einfügen des Codes, der entscheidet, welche Sortierklasse instanziiert wird, in eine Factory-Klasse werden die Bedenken getrennt, sodass Sie die Client-Klasse nicht jedes Mal ändern müssen, wenn Sie die instanziierte Sortierunterklasse ändern müssen.
Es ist eine Möglichkeit, Ihren Arsch zu bedecken. Wenn Sie voraussehen können, wie oder welche Klasse instanziiert wird, ist die Verwendung von Factory-Klassen sinnvoll. Auf diese Weise können Sie sicherstellen, dass sich Ihre Klassen auf ihre einzige Verantwortung konzentrieren, und es ist weniger wahrscheinlich, dass Sie vorhandenen Code ändern müssen, der nicht in Beziehung steht.