Heim > Web-Frontend > js-Tutorial > Hauptteil

Einführung in das Factory-Methodenmuster von JavaScript-Entwurfsmustern

PHPz
Freigeben: 2018-09-30 09:06:47
Original
1458 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Einführung des Factory-Methodenmusters in JavaScript-Entwurfsmustern vorgestellt. In diesem Artikel werden einfache Factory-Muster, mehrere Factory-Methodenmuster usw. erläutert. Freunde in Not können sich darauf beziehen

1. Einfaches Factory-Muster

Erläuterung: Es soll eine Factory-Klasse erstellt werden, die die Erstellung von Implementierungsklassen für dieselbe Schnittstelle implementiert.

Aber es scheint, dass JavaScript so etwas wie eine Schnittstelle nicht hat, daher sollten wir die Schnittstellenschicht natürlich entfernen, die Mitgliedsvariablen und Methoden unter unserer Implementierungsklasse sollten dieselben sein; >Zum Beispiel: Hier sind Beispiele für den SMS-Versand und den E-Mail-Versand der Klasse

2 🎜>

3. Erstellen Sie eine Factory-Klasse:

function MailSender() {    
this.to = '';    
this.title = '';    
this.content = '';
}
MailSender.prototype.send = function() {    
//send body
}
Nach dem Login kopieren

4. Verwenden Sie diese Factory-Klasse:

function SmsSender() {
    this.to = '';
    this.title = '';
    this.content = '';
}

SmsSender.prototype.send = function() {
    //send body
}
Nach dem Login kopieren

2 🎜>
function SendFactory() {
    this.sender = null;
}

SendFactory.prototype.produce = function(type) {
    var me = this;
    if (type == 'mail') {
        me.sender = new MailSender();
    } else if (type == 'sms') {
        me.sender = new SmsSender();
    }
   return me.sender;
}
Nach dem Login kopieren
Erklärung: Mehrere Factory-Modus-Methoden stellen eine Verbesserung gegenüber gewöhnlichen Factory-Methoden dar, da die Rückgabeimplementierung auf den übergebenen Zeichen basiert. Wenn die Zeichen falsch eingegeben werden, werden sie möglicherweise nicht oder nicht verarbeitet der falsche Weg; und mehrere Factory-Mustermethoden können solche Fehler vermeiden;

Wir verbessern die obige Factory-Klasse:
var factory = new SendFactory();
var sender = factory.produce('mail'); //sms
sender.to = 'toName#mail.com';
sender.title = '邮件测试标题!';
sender.content = '发送内容';
sender.send();
Nach dem Login kopieren

Verwendungsmethode:

3. Statisches Factory-Methodenmuster

function SendFactory() {
    this.sender = null;
}

SendFactory.prototype.produceMail = function() {
    var me = this;
    me.sender = new MailSender();
    return me.sender;
}
SendFactory.prototype.produceSms = function() {
    var me = this;
    me.sender = new SmsSender();
    return me.sender;
}
Nach dem Login kopieren
Beschreibung: Ändern Sie einfach die Methoden der oben genannten Multiple-Factory-Methodenmuster in statische Bezeichner, sodass sie SendFactory nicht instanziieren müssen Der Factory-Klassencode wird wie folgt geändert:

var factory = new SendFactory();
var sender = factory.produceSms(); //produceMail
sender.to = 'toName#xxxxx';
sender.title = '短信发送方法标题';
sender.content = '发送内容';
sender.send();
Nach dem Login kopieren
Verwendung:

Factory-Methodenmusterbeschreibung

Anweisungen zur Objektorientierung ProgrammierungWenn viele Produkte (reale Modelle, Namen: Klassennamen, Mitgliedsattribute, Operationsmethoden usw.) initialisiert werden müssen, dh Produkte erstellt werden müssen und [dieselbe Schnittstelle implementiert] ist, können Sie dies tun Verwenden Sie das Factory-Methodenmuster. Es ist möglich, dass der Eingabetyp im zweiten Modus falsch ist.

var SendFactory = {
    produceMail : function() {
        return new MailSender();
    },
    produceSms : function() {
        return new SmsSender();
    }
}
Nach dem Login kopieren
Das Obige ist der gesamte Inhalt dieses Kapitels Weitere verwandte Tutorials finden Sie unter

JavaScript-Video-Tutorial

!
var sender = SendFactory.produceMail();
sender.to = 'toName#mail.com';
sender.title = '邮件发送标题';
sender.content = '发送内容';
sender.send();
Nach dem Login kopieren
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!