Heim >Web-Frontend >js-Tutorial >Detaillierte Beschreibung der Javascript-Abstract-Factory-Pattern_Javascript-Fähigkeiten

Detaillierte Beschreibung der Javascript-Abstract-Factory-Pattern_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:26:331569Durchsuche

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. JavaScript verfügt jedoch nicht über eine Schnittstelle, daher wird diese Implementierungsebene entfernt, sondern die Mitglieder und Methoden von die Funktionsklassen sollten gleich sein

Abstraktes Factory-Quellcode-Beispiel

1. E-Mail-Versandkurs:

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 Fabrikschnittstellenklasse wurde ursprünglich hier erstellt, aber sie wird hier direkt entfernt. verschiedene Funktionsklassenfabriken erstellen;

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, die eine Art Abstraktion in der realen Welt darstellen. Möglicherweise gibt es in der Szene viele ähnliche Anwendungen, wie z. B. das oben genannte Versenden von E-Mails, das Versenden von Textnachrichten und verschiedene Werbemethoden in Einkaufszentren in der Tierwelt. Verschiedene 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, indem sie entsprechende Schnittstellen implementieren, und erfordern keine Änderung anderer Klassen oder Methoden

Stellungnahme:
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