Descripción del modo de apariencia
Nota: El modo de apariencia es una interfaz de interfaz de alto nivel proporcionada por un subsistema complejo o composición del programa, lo que facilita el acceso al programa o interfaz del sistema subyacente utilizando el cliente;
El modo de apariencia es un patrón que a menudo encontramos. Las funciones que a menudo involucramos pueden involucrar varias subinterfaces o subsistemas, mientras que una cierta función nuestra solo puede requerir que esto se encapsule en el orden de una o varias subinterfaces múltiples. Si la función comercial corresponde directamente a la subinterfaz o al subsistema, el desarrollador puede necesitar tener una comprensión considerable del contenido interno; Es posible que deba comprender cómo va el proceso comercial, cuál es su orden, etc. Esto requiere que los desarrolladores comprendan el negocio y también hace que la programación de clientes sea bastante complicada;
Si hay una capa o una clase aquí que proporciona específicamente el método que queremos usar para encapsularla, la función del cliente solo necesita interactuar con esta clase de capa intermedia, y los métodos correspondientes de la clase de capa intermedia tienen desarrolladores relacionados que comprenden la encapsulación de la organización empresarial, entonces el programa se volverá muy simple. El programador solo necesita saber qué método se requiere para su función, y no necesita saber la lógica interna.
Esta clase de capa media es lo que llamamos la clase de apariencia, que es la idea del patrón de apariencia.
Ejemplo de escena:
1>. Por ejemplo, el interruptor maestro, este interruptor maestro puede controlar una luz en la puerta de la casa, algunas luces en el pasillo, y controlar la fuente de alimentación del televisor de la casa, el refrigerador, etc. Si presiona "encendido" encendido, cuál tendrá electricidad e incluso emita directamente la transmisión de luz y calor. No tiene que saber cómo sale el botón en el interruptor maestro o cómo se presiona a los electrodomésticos relevantes. De todos modos, lo llamarás directamente.
Estas luces, televisores, etc. son las interfaces y los sistemas pequeños que queremos usar; Este interruptor maestro es nuestra apariencia, y podemos operarlo directamente.
2>. Es bueno que una empresa tenga varios departamentos funcionales. Cuando el jefe necesita la implementación de varios aspectos del trabajo uno por uno, irá al departamento y le preguntará a un empleado cómo está funcionando esto. Si le pregunta a la persona adecuada, puede responder directamente al jefe. Si esta persona es responsable, también le dirá al jefe: "Oh, quien es responsable de este asunto, y el jefe tiene que correr para preguntarle a la persona, es muy problemático".
Si cada departamento funcional tiene un supervisor, el jefe puede ir a él y descubrir la situación. El jefe no tiene que preocuparse por cómo la persona a cargo lo sabe. Solo quiere saber la situación de 1, 2 y 3 cosas y seguir el progreso.
Código fuente de instancia
Ahora implementa el código fuente de acuerdo con el escenario de la segunda instancia:
1. Varias funciones departamentales:
Departamento 1 (Departamento de Negocios):
La copia del código es la siguiente:
function BusinessDept () {
this.Manager = 'Manager Chen'; // personas a cargo
}
BusinessDept.Prototype = {
Messionales: function () {
console.log (this.smanager + 'diga: las ventas de este mes son xxx');
},
Nextplan: function () {
console.log (this.smanager + 'say: El siguiente plan es como este, xxxx');
}
}
Departamento 2 (Departamento de I + D):
La copia del código es la siguiente:
función rdDept () {
this.Manager = 'Manager Huang';
}
Rddept.prototype = {
progreso: function () {
console.log (this.smanager + 'diga: la situación y el progreso actuales son como este xxx');
},
Deptplan: function () {
console.log (this.smanager + 'say: El próximo plan del departamento es como este xxx');
}
}
Las anteriores son las preguntas que los supervisores de cada departamento deben responder al jefe;
A continuación, establezca la categoría de apariencia para organizar las preguntas que su jefe quiere hacer;
La copia del código es la siguiente:
función fachade () {
this.business = new BusinessDept ();
this.rdDept = new rdDept ();
}
Fachade.prototype = {
DePTsituation: function () {
this.Business.Monthsales (); // El gerente de ventas dirá primero;
this.rdDept.Progress ();
},
Deptplan: function () {
this.business.nextplan (); // Informe el siguiente plan;
this.rddept.deptplan ();
}
}
Luego, el jefe llamó a los dos gerentes frente a él y comenzó a hacer preguntas:
La copia del código es la siguiente:
var fachada = nueva fachada ();
console.log ('El jefe preguntó: ¿ahora introduce la situación de su departamento?');
fachade.deptsituation ();
console.log ('Boss preguntó: ¿Cuáles son los planes a continuación?');
fachade.deptplan ();
Otras instrucciones
El uso del modo de apariencia puede hacer que las interfaces o clases se desacople, de modo que no hay necesidad de depender entre las clases. Cuando no es necesario usar, A debe incluir B o B debe incluir A. Esto viola el principio de modificación de cierre. El uso de envoltorios de clase de apariencia de capa intermedia puede simplificar las llamadas de interfaz, y el uso de subinterfaces o llamadas de objetos del subsistema se vuelve más gratuito y organizado.
El modo de apariencia a menudo aparece en nuestra programación, y el modo de apariencia a menudo se usa en la definición de patrones del sistema de arquitectura. Nuestro sistema necesita utilizar servicios de interfaz de terceros y, a menudo, agregar una capa de apariencia para organizar las interfaces comerciales disponibles;