Factory-Methode ist ein Kreationsentwurfsmuster, das verwendet wird, um konkrete Implementierungen einer gemeinsamen Schnittstelle zu erstellen. Das Muster, das wir bilden möchten, sollte wie folgt aussehen, da folgende Iteratoren in Python integriert sind. Dies ist eine der mächtigsten Eigenschaften der Sprache. Vor Jahren las ich irgendwo, dass Iteratoren Python genial machen, und ich denke, das ist immer noch der Fall. Erfahren Sie genug über Python-Iteratoren und Generatoren und Sie werden alles wissen, was Sie über dieses spezielle Python-Muster benötigen. Designmuster sind eine gängige Möglichkeit, bekannte Probleme zu lösen. Zwei Hauptprinzipien liegen in den vom GOF definierten Entwurfsmustern: Jedes Mal, wenn der Dienst angefordert wird, wird eine neue Instanz erstellt, da kein langsamer Autorisierungsprozess vorhanden ist. Die Anforderungen sind einfacher, sodass Sie keine Builder-Klasse benötigen. Stattdessen wird eine Funktion verwendet, die einen initialisierten LocalService zurückgibt. Diese Funktion entspricht der Schnittstelle der .__call__()-Methoden, die in den Builderklassen implementiert sind.

In einem Python-Entwurfsmuster-Tutorial fand ich eine Beschreibung der Erstellungsentwurfsmuster, die besagten, dass diese Entwurfsmuster eine Möglichkeit bieten, Objekte zu erstellen, während die Erstellungslogik ausgeblendet wird, anstatt Objekte direkt mit einem neuen Operator zu instanziieren.” Auch hier haben wir gezeigt, wie die Implementierung dieses wunderbaren Designmusters in Python nur eine Frage der Verwendung der integrierten Funktionalitäten der Sprache ist. Dies ist ein wiederkehrendes Problem, das Factory Method zu einem der am häufigsten verwendeten Designmuster macht, und es ist sehr wichtig, es zu verstehen und zu wissen, wie es angewendet wird. Ein RegEx oder regulärer Ausdruck ist eine Folge von Zeichen, die ein Suchmuster bildet. Sie sollten auch auschecken und Master-Bridge- und Proxy-Entwurfsmuster aufgrund ihrer Ähnlichkeit mit Adapter. Denken Sie darüber nach, wie einfach sie in Python implementiert werden können, und überlegen Sie sich verschiedene Möglichkeiten, wie Sie sie in Ihrem Projekt verwenden können. Wikipedia hat einen guten Katalog von Designmustern mit Links zu Seiten für die häufigsten und nützlichsten Muster. Die größte Herausforderung bei der Implementierung einer allgemeinen Object Factory besteht darin, dass nicht alle Objekte auf die gleiche Weise erstellt werden. Erstellen wir die Factory-Instance und registrieren sie die Builder für die Dienste, die Sie unterstützen möchten: Die aktuelle Implementierung von .get_serializer() ist die gleiche, die Sie im ursprünglichen Beispiel verwendet haben. Die Methode wertet den Wert des Formats aus und entscheidet über die konkrete Implementierung, die erstellt und zurückgegeben werden soll. Es ist eine relativ einfache Lösung, die es uns ermöglicht, die Funktionalität aller Factory Method-Komponenten zu überprüfen. Jemand klüger als ich einmal gesagt habe, dass Factory in Python eingebaut ist. Es bedeutet, dass die Sprache selbst uns alle Flexibilität bietet, die wir brauchen, um Objekte in einer ausreichend eleganten Art und Weise zu schaffen; wir müssen selten etwas oben implementieren, wie Singleton oder Factory.

Das obige Beispiel zeigt, dass music.factory.create() aufgerufen wird, um auf einen Musikdienst zuzugreifen. Dies kann zu Verwirrung führen. Andere Entwickler könnten glauben, dass jedes Mal eine neue Instanz erstellt wird, und entscheiden, dass sie die Dienstinstanz umgehen sollten, um den langsamen Initialisierungsprozess zu vermeiden. Ich habe gezeigt, wie natürlich und einfach Pythons Designmuster zu verwenden ist, aber ich habe auch gezeigt, wie die Programmierung in Python auch einfach sein sollte. Auch Heads First Design Patterns: A Brain-Friendly Guide von Eric Freeman und Elisabeth Robson bietet eine unterhaltsame, leicht lesbare Erklärung von Designmustern. Aber es gibt Ihnen mehr als das. Es gibt Ihnen die “Freiheit”, wirklich schlechten Code zu schreiben.