Heim > Web-Frontend > js-Tutorial > Hauptteil

Einführung in das abstrakte Fabrikmuster von JavaScript-Entwurfsmustern_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 16:24:03
Original
1305 Leute haben es durchsucht

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:

Code kopieren Der Code lautet wie folgt:

Funktion MailSender() {
This.to = '';
This.title = '';
This.content = '';
}

MailSender.prototype.send = function() {
//Text senden
}

2. SMS-Versandkategorie:

Code kopieren Der Code lautet wie folgt:

Funktion SmsSender() {
This.to = '';
This.title = '';
This.content = '';
}

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:


Code kopieren Der Code lautet wie folgt:
Funktion MailFactory() {
 
}
MailFactory.prototype.produce = function() {
Gibt neuen MailSender();
zurück }

2>. SMS-Fabrikklasse:


Code kopieren Der Code lautet wie folgt:
Funktion SmsFactory() {
 
}
SmsFactory.prototype.produce = function() {
Gibt neuen SmsSender();
zurück }

4. Anwendung:


Code kopieren Der Code lautet wie folgt:
var Factory = new MailFactory();
var sender = Factory.produce();
sender.to = 'toname#mail.com';
sender.title = 'Abstraktes Fabrikmuster';
sender.content = 'Inhalt senden';
sender.send();

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!