Latest web development tutorials

modo de fábrica

patrón de la fábrica (patrón de la fábrica) Java es uno de los patrones de diseño más comúnmente utilizados. Este tipo de patrones de diseño pertenecen crear esquema, que proporciona la mejor manera de crear objetos.

En el modo de fábrica, no vamos a exponer el cliente para crear una lógica cuando se crea un objeto, y mediante el uso de una interfaz común para que apunte al objeto recién creado.

introducción

Intención: La definición de la interfaz de un objeto creado, permiten subclases decidir qué clase de crear una instancia de una fábrica, el patrón de la fábrica para hacer que el proceso de creación de la demora a la sub-clase.

Principalmente para resolver: El principal problema de las opciones de interfaz.

Cuándo utilizar: cuando creamos explícitamente diferentes instancias en diferentes condiciones plano.

Cómo solucionarlo: dejar que las subclases para implementar la interfaz de fábrica, es un producto abstracto devuelto.

El código de la llave: el proceso de creación ejecutado en sus subclases.

Ejemplos de aplicación: 1, se necesita un coche, se puede recoger desde el interior de la fábrica directamente, sin tener que canalizar el coche es cómo hacerlo, así como la puesta en práctica dentro del coche.2, la base de datos de cambio de hibernación, simplemente cambiando el dialecto y la conducción pueden.

Ventajas: 1, una persona que llama querían crear un objeto, simplemente conocer su nombre en él.2, alta escalabilidad, si desea añadir un producto, siempre y cuando la expansión de una clase de fábrica puede ser. 3, protegiendo la realización del producto, la persona que llama sólo se ocupa de la interfaz del producto.

Desventajas: cada aumento de un producto, tenemos que añadir clases y objetos para alcanzar una fábrica de hormigón, por lo que el número de clases en el sistema aumenta de manera exponencial, en cierta medida, el aumento de la complejidad del sistema, pero también aumenta la clase específica del sistema dependencia.Esto no es una buena cosa.

Escenarios de uso: 1, Logger: Los registros pueden ser grabadas en el disco duro local, el evento del sistema, servidor remoto, el usuario puede seleccionar iniciar sesión en alguna parte.2, acceso a base de datos, cuando el usuario no sabe qué tipo de sistema final utiliza una base de datos y la base de datos podría cambiar. 3, el diseño de un marco para la conexión con el servidor, se necesitan tres acuerdos, "POP3", "IMAP", "HTTP", pueden estos tres como una categoría de producto, para lograr una interfaz común.

Nota: Como una clase de modo de crear, siempre que sea necesario para generar objetos complejos, puede utilizar el método de patrón de fábrica.Una cosa a tener en cuenta es que el lugar de objetos complejos utilizando el patrón de la fábrica, y objetos simples, en particular, se completarán solo por los nuevos objetos creados sin el uso del modelo de fábrica. Si se utiliza el patrón de la fábrica, es necesario introducir una clase de fábrica, además de aumentar la complejidad del sistema.

realización

Vamos a crear una interfaz de clase de entidad y la interfaz de la aplicaciónde la formade la forma. El siguiente paso es definir clases de fábricaShapeFactory.

FactoryPatternDemo,nuestra demostración para obtener la clase que se utiliza objetoShapeShapeFactory. Se transmitirá la información(CIRCLE/ Rectángulo / cuadrado) aShapeFactory,que necesita para obtener el tipo de objeto.

patrón de la fábrica 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 () {
      ( "Método Dentro del rectángulo :: draw ().") System.out.println;
   }
}

Square.java

clase pública implementa Square Shape {

   @ Override
   sorteo public void () {
      ( "Método de la plaza interior :: draw ().") System.out.println;
   }
}

Circle.java

Círculo clase pública implementa la forma {

   @ Override
   sorteo public void () {
      ( "Método dentro del círculo :: draw ().") System.out.println;
   }
}

paso 3

Crear una fábrica para producir las clases de entidad de objetos en base a la información proporcionada.

ShapeFactory.java

ShapeFactory public class {
	
   // Usar el método para obtener un objeto del tipo de forma de la forma pública getShape (String shapeType) getShape {
      si (shapeType == null) {
         return null;
      }		
      si (shapeType.equalsIgnoreCase ( "círculo")) {
         return new Circle ();
      } Else if (shapeType.equalsIgnoreCase ( "RECTANGULO")) {
         return new Rectangle ();
      } Else if (shapeType.equalsIgnoreCase ( "cuadrado")) {
         volver nueva Plaza ();
      }
      return null;
   }
}

Paso 4

Utilice la fábrica para obtener un objeto entidad de la clase haciendo pasar información de tipo.

FactoryPatternDemo.java

FactoryPatternDemo public class {

   principales argumentos (String []) {public static void
      ShapeFactory shapeFactory = new ShapeFactory ();

      // Obtener el objeto Circle, y llamar a su método de sorteo shape1 Forma = shapeFactory.getShape ( "círculo");

      // Llamar al método draw de shape1.draw círculo ();

      // Obtener el objeto rectangular, y llamar a su método de sorteo shape2 Forma = shapeFactory.getShape ( "RECTANGULO");

      // Llamar al método draw de rectángulo shape2.draw ();

      // Obtener el objeto de la plaza, y llamar a su método de sorteo shape3 Forma = shapeFactory.getShape ( "cuadrado");

      // Llamar al método draw Plaza shape3.draw ();
   }
}

paso 5

Verifique la salida.

En el interior del círculo :: método draw ().
Dentro del rectángulo :: método draw ().
Dentro de la plaza :: método draw ().