Heim >Web-Frontend >js-Tutorial >Einführung in das abstrakte Fabrikmuster von JavaScript-Entwurfsmustern_Javascript-Fähigkeiten
Abstrakte Fabrikmusterbeschreibung
1. Probleme mit dem Factory-Methodenmuster: Beim Erstellen einer Klasse muss die Factory-Klasse übergeben werden. Dies verstößt gegen das Schließungsprinzip und ist offen ;Es gibt bestimmte Probleme mit dem Design.
2. Lösung: Wir müssen das abstrakte Factory-Muster verwenden, das darin besteht, eine Factory-Klasse separat für die Funktionsklasse zu erstellen, sodass der vorherige Code nicht geändert werden muss und die Funktion erweitert wird.
3. Das Factory-Muster ist eigentlich eine einheitliche Factory-Methode zum Erstellen und Aufrufen von Implementierungsklassen, die dieselbe Schnittstelle implementieren, aber JavaScript verfügt nicht über so etwas wie eine Schnittstelle, daher wird diese Implementierungsebene entfernt, aber die Mitglieder und Methoden der Funktionsklassen sollten gleich sein;
Abstraktes Factory-Quellcode-Beispiel
1. E-Mail-Versandtyp:
MailSender.prototype.send = function() {
//Text senden
}
2. SMS-Versandkategorie:
SmsSender.prototype.send = function() {
//Text senden
}
3. Die Factory-Schnittstellenklasse wurde hier ursprünglich erstellt, aber sie wird hier direkt entfernt
1>. Mail-Factory-Klasse:
2>. SMS-Fabrikklasse:
4. Anwendung:
Weitere Anweisungen
Das Factory-Muster, das in objektorientierten Sprachen wie Java und .net C# verwendet wird, verwendet alle Schnittstellen. Schnittstellen sind verfügbare Methoden, die verschiedenen Benutzern zur Verfügung stehen. Sie beschreiben, welche Methoden zum Anwenden dieser Funktion verwendet werden und wie Benutzer sie verwenden sollten . Schnittstelle. Objekte werden in Form von Klassen ausgedrückt und stellen eine Art Abstraktion in der realen Welt dar. Möglicherweise gibt es in der Szene viele ähnliche Anwendungen, wie z. B. den oben genannten E-Mail-Versand, den SMS-Versand, verschiedene Werbemethoden in Einkaufszentren und die Tierwelt Vögel und Tiere usw.
Wenn wir Benutzern keine Schnittstellen zur Verfügung stellen, stellen wir Benutzern zwangsläufig echte funktionale Klassenobjekte zur Verfügung. Benutzer können Klassenobjekte nach Belieben ändern und erweitern, was nicht zulässig ist.
Factory-Methodenmuster und abstrakte Factory-Muster können dieses Problem sehr gut lösen. Benutzer können die Schnittstelle nur zum Aufrufen der Factory-Klasse verwenden, um bestimmte Operationen auszuführen Klassen implementieren ihre eigenen Erweiterungen auf Klassenebene auf den entsprechenden Schnittstellen und erfordern keine Änderung anderer Klassen oder Methoden
Natürlich gibt es keine Möglichkeit, dies in einer Sprache wie Javascript zu tun. Programmierer müssen Selbstdisziplin sein!