1. Einfacher Werksmodus
Beschreibung: Es wird eine Fabrikklasse erstellt, die die Erstellung der Implementierungsklasse für dieselbe Schnittstelle implementiert.
Es scheint jedoch, dass JavaScript keine Schnittstellennummer hat, daher entfernen wir die Schnittstellenschicht. Natürlich sollten die Mitgliedervariablen und -Methoden unserer Implementierungsklasse gleich sein.
Zum Beispiel: Zu diesem Zeitpunkt können Sie ein Beispiel für das Senden von Textnachrichten und das Senden von E -Mails geben.
1>. Mails senden [Implementierungs] Klasse
Die Codekopie lautet wie folgt:
Funktion mailSender () {
this.to = '';
this.title = '';
this.content = '';
}
MailSender.Prototype.Send = function () {
// Körper senden
}
2>. SMS -Sende [Implementierung] Klasse
Die Codekopie lautet wie folgt:
Funktion SMSSSender () {
this.to = '';
this.title = '';
this.content = '';
}
SmSSender.Prototype.send = function () {
// Körper senden
}
3>. Erstellen Sie eine Fabrikklasse:
Die Codekopie lautet wie folgt:
Funktion sendFactory () {
this.sender = null;
}
SendFactory.Prototype.produce = Funktion (Typ) {
var me = this;
if (type == 'Mail') {
me.sender = new MailSender ();
} else if (type == 'sms') {
me.sender = new smSSender ();
}
kehre mich zurück.
}
4>. Verwenden Sie diese Fabrikklasse:
Die Codekopie lautet wie folgt:
var factory = new sendFactory ();
var senger = factory.produce ('mail'); // SMS
Sender.to = 'toname#Mail.com';
Sender.title = 'Mail -Testtitel!';
Sender.Content = 'Inhalt senden';
Sender.Send ();
2. Multiple Factory -Methodenmodus
Hinweis: Mehrere Werksmodusmethoden sind eine Verbesserung der gewöhnlichen Fabrikmethoden, da die Rückgabeimplementierung auf den bestandenen Zeichen basiert. Wenn die Zeicheneingabe nicht falsch ist, wird sie möglicherweise nicht in einen Fehler verarbeitet oder verarbeitet. Während mehrere Werksmodusmethoden solche Fehler vermeiden können;
Wir haben Verbesserungen der obigen Fabrikklasse vorgenommen:
Die Codekopie lautet wie folgt:
Funktion sendFactory () {
this.sender = null;
}
SendFactory.Prototype.Producemail = function () {
var me = this;
me.sender = new MailSender ();
kehre mich zurück.
}
SendFactory.Prototype.Producesms = function () {
var me = this;
me.sender = new smSSender ();
kehre mich zurück.
}
Wie man verwendet:
Die Codekopie lautet wie folgt:
var factory = new sendFactory ();
var senger = factory.Producesms (); // produzieren
Sender.to = 'toname#xxxxx';
SENTER.TITLE = 'SMS SENDING METHODE TITE';
Sender.Content = 'Inhalt senden';
Sender.Send ();
3..
HINWEIS: Ändern Sie die oben genannten Methoden mit mehreren Werksmethoden in statische Identifizierung, sodass SendFactory nicht instanziiert werden muss.
Ändern Sie den Fabrikcode wie folgt:
Die Codekopie lautet wie folgt:
var sendFactory = {
productemail: function () {
Neue Mailsender zurückgeben ();
},
produziert: function () {
Neue SMSSender () zurückgeben;
}
}
Wie man verwendet:
Die Codekopie lautet wie folgt:
var senger = sendFactory.Producemail ();
Sender.to = 'toname#Mail.com';
Sender.title = 'Mail senden Titel';
Sender.Content = 'Inhalt senden';
Sender.Send ();
Fabrikmethodenmodellbeschreibung
In Objektoriented Thinking Programmierbeschreibung, wenn es viele Produkte gibt (Real World-Modelle, Namen: Klassennamen, Mitgliedsattribute, Betriebsmethoden usw.), die initialisiert werden müssen, dh das Produkt erstellt werden muss, und [bei der Implementierung derselben Schnittstelle] kann der Werksmethodenmodus verwendet werden. Der erste Modus hat die Möglichkeit eines Eingangstypfehlers, und der zweite Modus, wenn dies erforderlich ist, wird die Werkseinstanz erstellt.