Latest web development tutorials

patrón de la fachada

patrón de la fachada (Pattern Fachada) oculta la complejidad del sistema para el cliente proporciona un cliente puede acceder a la interfaz del sistema. Este tipo de patrones de diseño pertenecen modelo estructural, se añade una interfaz a un sistema existente, para ocultar la complejidad del sistema.

Este modelo implica una sola clase, que ofrece un enfoque simplificado para las solicitudes del cliente y las llamadas a métodos de clase de delegado sistemas existentes.

introducción

Propósito: El subsistema proporciona un conjunto de interfaces en una interfaz coherente, el esquema define la apariencia de una interfaz de alto nivel que hace que el subsistema más fácil de usar.

La solución principal: reducir la complejidad de acceso a los subsistemas internos cuando los sistemas complejos, simplifican cliente con la interfaz.

Cuándo utilizar: 1, el cliente no necesita conocer el sistema dentro de los vínculos complejos, todo el sistema sólo necesita proporcionar una "recepcionista" puede ser.2, la entrada de definir el sistema.

Cómo corregir: el cliente no está acoplado con el sistema, el sistema junto con la aparición de la clase.

El código de la llave: entre el sistema cliente y añadir una capa de complejidad, esta vez será secuencia de llamada, dependencias y otras manipulaciones.

Ejemplos de aplicación: 1, van al hospital, es posible que vaya a registro, ambulatorio, precio designado, dispensario, los miembros de los pacientes o familiares de pacientes resulta muy complicado, si se proporcionan personal de recepción, simplemente dejar que el personal de recepción para tratar de, muy conveniente.2, JAVA de tres niveles modelo de desarrollo.

Ventajas: 1, para reducir el sistema son interdependientes.2, aumentar la flexibilidad. 3, para mejorar la seguridad.

Desventajas: no cumple con el principio de apertura y cierre, si usted quiere cambiar las cosas demasiado problema, reescritura de la herencia son inapropiados.

Escenarios de uso: 1, para proporcionar acceso a los módulos externos son complejos módulos o subsistemas.2, subsistemas relativamente independientes. 3, la prevención de riesgos de personal de bajo nivel.

Nota: En una estructura jerárquica, puede utilizar el sistema para definir el aspecto del modo de entrada para cada capa.

realización

Vamos a crear una interfazde la formay la implementación de la interfazen forma declases de entidad. El siguiente paso es definir una claseShapeMaker piel.

ShapeMakerclase utiliza una clase de entidad para representar un usuario llama a estas clases.FacadePatternDemo,nuestras clases de demostración utilizando la claseShapeMakerpara visualizar los resultados.

patrón de la fachada diagrama UML

Paso 1

Crear una interfaz.

Shape.java

Forma interfaz pública {
   void draw ();
}

Paso 2

Crear clase de entidad que implementa la interfaz.

Rectangle.java

clase pública implementa Rectángulo Forma {

   @ Override
   sorteo public void () {
      System.out.println ( "Rectángulo :: draw ()");
   }
}

Square.java

clase pública implementa Square Shape {

   @ Override
   sorteo public void () {
      System.out.println ( "Square :: draw ()");
   }
}

Circle.java

Círculo clase pública implementa la forma {

   @ Override
   sorteo public void () {
      System.out.println ( "Círculo :: draw ()");
   }
}

paso 3

Crear una apariencia de clase.

ShapeMaker.java

ShapeMaker public class {
   forma de círculo privado;
   Forma rectángulo privada;
   Forma cuadrada privada;

   ShapeMaker público () {
      círculo = new Circle ();
      rectángulo = new Rectangle ();
      cuadrado = nueva Plaza ();
   }

   drawCircle public void () {
      circle.draw ();
   }
   drawRectangle public void () {
      rectangle.draw ();
   }
   drawSquare public void () {
      square.draw ();
   }
}

Paso 4

El uso de diversos tipos de clase de la piel para dibujar la forma.

FacadePatternDemo.java

FacadePatternDemo public class {
   principales argumentos (String []) {public static void
      ShapeMaker shapeMaker = new ShapeMaker ();

      shapeMaker.drawCircle ();
      shapeMaker.drawRectangle ();
      shapeMaker.drawSquare ();		
   }
}

paso 5

Verifique la salida.

Círculo :: draw ()
Rectángulo :: draw ()
:: Cuadrado empate ()