1. Modo de fábrica simple
Descripción: es crear una clase de fábrica, que implementa la creación de la clase de implementación para la misma interfaz.
Pero parece que JavaScript no tiene un número de interfaz, por lo que eliminamos la capa de interfaz; Por supuesto, las variables y los métodos de los miembros de nuestra clase de implementación deben ser las mismas;
Por ejemplo: en este momento, puede dar un ejemplo de enviar mensajes de texto y enviar correos electrónicos;
1>. Envío de correo [Implementación] Clase
La copia del código es la siguiente:
function mailsender () {
this.to = '';
this.title = '';
this.content = '';
}
Mailsender.prototype.send = function () {
// Enviar cuerpo
}
2>. Clase de envío de SMS [implementación]
La copia del código es la siguiente:
función smssender () {
this.to = '';
this.title = '';
this.content = '';
}
Smssender.prototype.send = function () {
// Enviar cuerpo
}
3>. Crea una clase de fábrica:
La copia del código es la siguiente:
función sendFactory () {
this.sender = nulo;
}
SendFactory.prototype.produce = function (type) {
var me = esto;
if (type == 'mail') {
me.sender = new Mailsender ();
} else if (type == 'sms') {
me.sender = nuevo smssender ();
}
devuélvame.sender;
}
4>. Use esta clase de fábrica:
La copia del código es la siguiente:
var factory = new SendFactory ();
var remitente = factory.produce ('mail'); // SMS
remiter.to = 'toname#mail.com';
Sender.title = '¡Título de la prueba de correo!';
remiter.content = 'Enviar contenido';
remitente.send ();
2. Modo de método de fábrica múltiple
Nota: Los métodos de modo de fábrica múltiple son una mejora en los métodos de fábrica ordinarios, porque la implementación de retorno se basa en los caracteres aprobados. Cuando la entrada del personaje es incorrecta, no se puede procesar o procesar en un error; mientras que los métodos de modo de fábrica múltiples pueden evitar tales errores;
Hemos realizado mejoras en la clase de fábrica anterior:
La copia del código es la siguiente:
función sendFactory () {
this.sender = nulo;
}
SendFactory.prototype.producemail = function () {
var me = esto;
me.sender = new Mailsender ();
devuélvame.sender;
}
SendFactory.prototype.productesms = function () {
var me = esto;
me.sender = nuevo smssender ();
devuélvame.sender;
}
Cómo usar:
La copia del código es la siguiente:
var factory = new SendFactory ();
var stader = factory.produceSms (); // Productemail
remiter.to = 'toname#xxxxx';
remiter.title = 'Título del método de envío de SMS';
remiter.content = 'Enviar contenido';
remitente.send ();
3. Modo de método de fábrica estática
Nota: Cambie los métodos de modo de método de fábrica múltiple anterior a la identificación estática para que no haya necesidad de instanciar SendFactory;
Modifique el código de fábrica de la siguiente manera:
La copia del código es la siguiente:
var sendFactory = {
Producena: function () {
devolver nuevo Mailsender ();
},
productesms: function () {
devolver nuevo smssender ();
}
}
Cómo usar:
La copia del código es la siguiente:
Var remitente = sendFactory.ProduceMail ();
remiter.to = 'toname#mail.com';
remiter.title = 'Mail Enviar título';
remiter.content = 'Enviar contenido';
remitente.send ();
Descripción del modelo de método de fábrica
En la descripción de la programación de pensamiento orientado a objetos, cuando hay muchos productos (modelos del mundo real, nombres: nombres de clases, atributos de miembros y métodos de operación, etc.) que deben inicializarse, es decir, el producto debe crearse y [al implementar la misma interfaz], se puede utilizar el modo de método de fábrica; El primer modo tiene la posibilidad de error de tipo de entrada, y el segundo modo, cuando es necesario, se crea la instancia de fábrica;