Que es un patrón
Me estaba preparando para el examen final hace un tiempo, pero era una persona minuciosa y estaba muy ocupado. No tuve tiempo para actualizar el artículo. Hoy te contaré sobre los patrones de diseño en JavaScript.
En primer lugar, lo que necesitamos saber es que el patrón es una solución reutilizable, mientras que el antipatrón es una mala solución para un determinado problema.
Ejemplos comunes de antipatrones de JS
1. Pase las cadenas a SetTimeOut y SetInterval, no funciones, lo que desencadena el uso interno de eval ().
2. Defina una gran cantidad de variables en el contexto global para contaminar el espacio de nombres global
3. Modifique el prototipo de la clase de objeto
4. Use JS en línea, y el código JS incrustado en archivos HTML no puede incluirse en las herramientas de prueba de unidades externas.
5. Documento de abuso. Write. Si ejecuta document.write después de cargar la página, reescribirá la página en la que estamos. Si puede usar document.creatElement, intente no usar document.write.
Categoría de patrones de diseño
Creando un patrón de diseño
Los patrones de diseño creativo se centran en el manejo de los mecanismos de creación de objetos para crear objetos de una manera que se adapte a una situación dada. Los atributos que caen en esta categoría incluyen:
Constructor Constructor, Factory Factory, Abstraction Abstraction, Prototype Prototype, Singleton Singleton y generador de constructor
Patrón de diseño estructural
Los patrones estructurales están relacionados con las combinaciones de objetos y a menudo pueden usarse para encontrar formas simples de establecer relaciones entre diferentes objetos.
Los patrones que entran en esta categoría incluyen:
Decorador decorador, apariencia de fachada, enciclopedia de peso mosca, adaptador y proxy proxy
Patrón de diseño de comportamiento
Los patrones de comportamiento se centran en mejorar o simplificar la comunicación entre diferentes objetos en el sistema.
Los patrones de comportamiento incluyen:
Iterador iterador, mediador mediador, observador observador y visitante de visitantes
Modo de fábrica
Para resolver el problema de múltiples declaraciones de objetos similares, podemos usar un método llamado patrón de fábrica, que es resolver el problema de instanciar objetos con una gran cantidad de duplicaciones.
La copia del código es la siguiente:
<script type = "text/javaScript">
función createObject (nombre, edad, profesión) {// Función instanciada central {//
var obj = nuevo objeto ();
obj.name = nombre;
obj.age = edad;
obj.profession = profesión;
obj.move = function () {
devuelve this.name + 'en' + this.age + 'involucrado en' + this.profession;
};
regresar obj;
}
var test1 = createObject ('trigkit4', 22, 'programador'); // Primera instancia
var test2 = createObject ('Mike', 25, 'Ingeniero'); // La segunda instancia
alerta (test1.move ());
alerta (test2.move ());
</script>
Categoría de modelo de fábrica
El patrón de fábrica se divide en fábricas simples, fábricas abstractas y fábricas inteligentes. El patrón de fábrica requiere el uso de un constructor sin mostrarlo.
Patrón de fábrica simple: use una clase (generalmente un monómero) para generar una instancia.
Patrón de fábrica compleja: use subclases para determinar qué instancia de clase específica debe ser una variable miembro.
Los beneficios del modelo de fábrica
La principal ventaja es que puede eliminar el acoplamiento entre objetos utilizando métodos de ingeniería en lugar de nuevas palabras clave. Concentre todo el código instanciado en un solo lugar para evitar la duplicación del código.
Desventajas del modelo de fábrica
La mayoría de las clases se usan mejor con nuevas palabras clave y constructores, lo que puede hacer que el código sea más fácil de leer. En lugar de verificar el método de fábrica para saber.
El patrón de fábrica resuelve el problema de la instanciación repetida, pero hay otro problema, es decir, identificar el problema, porque es imposible descubrir qué instancia del objeto son.
La copia del código es la siguiente:
alerta (typeOf test1); //Objeto
alerta (prueba1 instancia de objeto); //verdadero
¿Cuándo usar el modo de fábrica?
El modo de fábrica se usa principalmente en los siguientes escenarios:
1. Cuando un objeto o componente implica una alta complejidad
2. Cuando es necesario generar fácilmente diferentes instancias de objetos de acuerdo con los diferentes entornos en los que se encuentran
3. Cuando se trata de muchos objetos o componentes pequeños que comparten los mismos atributos
Modo de constructor
En ECMAScript, los constructores (constructores) se pueden usar para crear objetos específicos. Este modo puede resolver el problema de que el modo de fábrica anterior no puede reconocer las instancias de objeto.
La copia del código es la siguiente:
<script type = "text/javaScript">
Function Car (modelo, año, millas) {// modo constructor
this.model = modelo;
this.Year = año;
this.miles = millas;
this.run = function () {
devuelve this.model + "ha hecho" + this.miles + "millas";
}
}
var benz = nuevo coche ('benz', 2014,20000);
var bmw = auto nuevo ("BMW", 2013,12000);
alerta (instancia benz de coche); // Lo identifico claramente como subordinado al automóvil, verdadero
console.log (benz.run ());
console.log (bmw.run ());
</script>
El uso del método del constructor resuelve el problema de la instanciación repetida y el problema del reconocimiento de objetos. La diferencia entre este patrón y el patrón de fábrica es:
1. Crear objeto (nuevo objeto ()) que no se muestra por el método del constructor;
2. Asigne directamente atributos y métodos a este objeto;
3. Sin declaración de devolución.
Hay algunas especificaciones para los métodos de constructor:
1. El nombre de la función y el constructor instanciado son los mismos y capitalizados (PS: no obligatorio, pero escribir esto ayuda a distinguir entre constructores y funciones ordinarias);
2. Para crear un objeto a través de un constructor, se debe usar el nuevo operador.
Dado que se puede crear un objeto a través de un constructor, ¿de dónde vino este objeto y de dónde se ejecutó el nuevo objeto ()? El proceso de ejecución es el siguiente:
1. Cuando se usa el constructor y se usa el nuevo constructor (), entonces el nuevo objeto () se ejecuta en el fondo;
2. Alcance el constructor a un nuevo objeto (es decir, el objeto creado por nuevo objeto ()), y esto en el cuerpo de la función representa el objeto producido por nuevo objeto ().
3. Ejecutar el código dentro del constructor;
4. Devuelva el nuevo objeto (regrese directamente en el fondo).
Constructor con prototipo (constructor)
Hay una propiedad llamada Prototipo en JS. Después de llamar al constructor JS para crear un objeto, el nuevo objeto tendrá todas las propiedades del prototipo del constructor. De esta manera, se pueden crear múltiples objetos de automóvil y se puede acceder al mismo prototipo.
La copia del código es la siguiente:
<script type = "text/javaScript">
function car (modelo, año, millas) {
this.model = modelo;
this.Year = año;
this.miles = millas;
}
Car.prototype.run = function () {
devuelve this.model + "ha hecho" + this.miles + "millas";
};
var benz = auto nuevo ('S350', 2010,20000);
var ford = auto nuevo ('Ford', 2012,12000);
console.log (benz.run ()); // "S350 ha hecho 20000 millas"
console.log (Ford.run ());
</script>
Ahora se puede compartir una sola instancia de Run () entre todos los objetos del automóvil.