patrones de diseño comunes resumen :( a) crear un esquema

Crear un esquema

Crear esquema de proceso de creación de instancias de la clase abstracta, con el objeto puede ser creado usando el proceso de separación de objetos.

patrón de la fábrica simple (Simple patrón de fábrica)

alias

  • método de fábrica estática modo (estática Método de fábrica)

modo motivación

Considere un escenario de aplicación software simple, un sistema de software puede proporcionar la apariencia de una pluralidad de diferentes botones (por ejemplo, botón de radio, un botón de rectángulo, botón de diamante, etc.), estos botones se derivan de la misma clase base, la clase base pero difieren en sucesión subclase modificar algunas de las propiedades para que puedan presentar un aspecto diferente, si queremos utilizar estos botones, el botón no necesita saber los nombres de estas clases específicas, sólo es necesario conocer los parámetros indican una clase de botón, y proporciona una llamada método conveniente, los parámetros pasados ​​al método para devolver un objeto de botón correspondiente, esta vez, se puede utilizar un patrón de fábrica sencillo.

Definición de esquemas

Ejemplos de diferentes clases pueden ser devueltos de acuerdo con diferentes parámetros. patrón de la fábrica simple de definir una clase especial para otras clases responsables de la creación de una instancia, la instancia se genera normalmente tienen una clase padre común.
El punto es patrón de la fábrica simple: cuando lo que necesita, sólo tiene que pasar los parámetros adecuados, puede obtener el objeto que necesita, sin tener que conocer los detalles de su creación.

estructura de modos

  • De fábrica: fábrica de papeles
    papel fábricas es responsable de implementar la lógica interna de todo crear instancias

  • Producto: papeles producto abstracto
    papel abstracta producto es el padre de todos los objetos creados, responsable de la descripción de la interfaz pública común a todas las instancias

  • ConcreteProduct: papel de los productos específicos
    papel específico es crear una segmentación de productos, todos los objetos creados están sirviendo como un ejemplo de una clase específica de este papel.

modo de aplicación

biblioteca de clases de JDK ampliamente utilizado modo de fábrica sencilla, la herramienta de la clase java.text.DateFormat, que se utiliza para dar formato a una fecha u hora local.

public final static DateFormat getDateInstance();
public final static DateFormat getDateInstance(int style);
public final static DateFormat getDateInstance(int style,Locale
locale);

tecnología de encriptación de Java
para obtener generador de diferentes algoritmos de clave de cifrado:

KeyGenerator keyGen=KeyGenerator.getInstance("DESede");

Crear un control de contraseña:

Cipher cp=Cipher.getInstance("DESede");

ventaja

  • clase de fábrica contiene el juicio lógica necesaria, puede decidir qué instancia de una clase de producto se crea en qué momento el cliente podrá quedar exento de la responsabilidad de crear el producto objetos directamente, pero solo producto "consumidor"; un patrón de fábrica sencillo logrado a través de la práctica de la responsabilidad la división, que proporciona clase de fábrica especializada para la creación de objetos.
  • Los clientes no necesitan conocer la categoría de producto específica nombre de la clase creada sólo necesita saber la clase de producto específica parámetros correspondientes pueden ser, por algún nombre de la clase compleja, un patrón de fábrica simple puede reducir la cantidad de memoria de usuario.
  • Al introducir el archivo de configuración, puede cambiar y añadir nueva categoría de producto específica, sin modificar el código del lado del cliente y mejorar la flexibilidad del sistema hasta cierto punto.

defecto

  • Desde la clase de fábrica centraliza toda la lógica de la creación del producto, una vez que no funciona, todo el sistema debe verse afectado.
  • El uso de un modelo simple que aumentará el número de clases de fábrica en el sistema, aumenta la complejidad y la dificultad de comprensión del sistema en un determinado programa.
  • la expansión del sistema difícil, una vez que el nuevo producto tendrá que añadir lógica para modificar la planta, cuando hay muchos tipos de productos, puede hacer que la lógica de la planta es demasiado complicado, no es propicio para la expansión y el mantenimiento del sistema.
  • patrón de la fábrica sencilla debido a la utilización de método de fábrica estática, lo que resulta en el papel de la fábrica no puede formar una jerarquía basada en la herencia.

Fábrica modelo de método (Método de fábrica Pattern)

alias

  • patrón de la fábrica
  • modo de constructor Virtual (Constructor Virtual)
  • Modo planta polimórfico (polimórfica de fábrica)

modo motivación

Ya no diseñado para unificar una fábrica de botones clase es responsable de la creación de todos los productos, sino más bien la creación de un botón específico para subclases especializadas a la fábrica completado, en primer lugar definir un botón abstracto clase de fábrica, y luego definimos clase de fábrica de hormigón generar un botón de radio, un botón de rectángulo, botón o el tipo diamante, que implementan los métodos abstractos definidos en el generador de clases botón. Este resultado abstracto que dicha estructura una puede introducir nuevos productos sin modificar la clase de fábrica de hormigón, si el nuevo aparece tipo botón, sólo tienen que crear una clase de fábrica de hormigón para este nuevo tipo de botón que puede conseguir ejemplos del nuevo botón, una función que, sin duda, hará que el patrón método de fábrica tiene ventajas más allá de patrón de la fábrica simple, más en línea con "el principio de apertura y cierre."

Definición de esquemas

En el modo de método de fábrica, la clase padre de fábrica es responsable de definir crear productos de interfaz pública del objeto, la subclase de fábrica es responsable de generar unos productos diana particulares, el objetivo es el funcionamiento instantiate del retraso clase de productos de la subclase planta completado, es decir, determinando si la subclase fábrica que una clase específica del producto para crear una instancia.

estructura de modos

  • Producto: producto abstracto
  • ConcreteProduct: Productos específicos
  • Fábrica: Abstract Factory
  • ConcreteFactory: fábrica de hormigón

modo de aplicación

El método de fábrica JDBC:

Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://loc
alhost:1433; DatabaseName=DB;user=sa;password=");
Statement statement=conn.createStatement();
ResultSet rs=statement.executeQuery("select * from UserInfo");

ventaja

  • En el Factory Method, método de fábrica para crear productos requeridos por los clientes, sino también a los clientes que oculta la clase de producto específico se creará una instancia de este detalle, los usuarios sólo tienen que preocuparse de las instalaciones necesarias para el producto correspondiente sin la preocupación creada detalles, o ni siquiera conozco el nombre de la categoría de producto específica de clase.
  • polimorfismo de diseño de la planta se basa en el papel y el carácter del producto es la clave patrón método de fábrica. Se permite que la planta puede autónoma determinar qué objeto se crea el producto, y cómo crear los detalles del objeto está completamente encapsuladas en la fábrica de cemento. La razón por la cual el método del modo de fábrica también se denomina modo de fábrica polimórfica, ya que todas las clases de fábrica específicos con la misma clase padre abstracta.
  • Al añadir nuevos productos en el sistema, no hay necesidad de modificar la interfaz de abstracción de fábrica y ofertas de productos abstractos sin tener que modificar el cliente, no hay necesidad de modificar otras plantas de hormigón y productos de hormigón, y sólo tiene que añadir una planta específica y productos específicos en ella. Por lo tanto, la escalabilidad del sistema llegará a ser muy buen cumplimiento, completa con "el principio de apertura y cierre."

defecto

  • Al agregar un nuevo producto, es necesario escribir una nueva clase de productos específicos, sino también para proporcionar la clase de fábrica de hormigón correspondiente, el número de pares de los aumentos del sistema de clases, la complejidad del sistema, en cierta medida, hay más las necesidades de la clase que se compilan y ejecutan, traerá algún sistema de sobrecarga adicional.
  • Teniendo en cuenta la escalabilidad del sistema, requiere la introducción de la capa de abstracción, se definen en la capa de abstracción utilizando el código de cliente, el sistema aumenta la abstracción y la dificultad de comprensión de, y puede que tenga que utilizar el DOM, ART reflexión Cuando se implementa, aumentar la dificultad de implementar el sistema.

Abstract Factory (Fábrica Abstracta)

modo motivación

A veces necesitamos una instalación pueden proporcionar múltiples objetos producto, en lugar de un objetivo único producto.

Definición de esquemas

Crear una serie de interfaz de objetos relacionados o dependientes, sin especificar sus clases concretas. Resumen patrón de fábrica, también conocido como Kit, perteneciente creación de objetos de esquema.

estructura de modos

  • AbstractFactory: Abstract Factory
  • ConcreteFactory: fábrica de hormigón
  • AbstractProduct: producto abstracto
  • productos específicos: Producto

ventaja

  • Resumen patrón de fábrica aislada generar las clases específicas que los clientes no necesitan saber lo que se está creando. Debido a este aislamiento, la sustitución de una planta en particular se hace relativamente fácil. Todas las plantas de hormigón han alcanzado los interfaz pública definida en la fábrica abstracta, por lo que sólo cambiar la instancia específica de la fábrica, se puede cambiar el comportamiento de todo el sistema de software hasta cierto punto. Además, la aplicación puede ser implementada fábrica abstracto objeto patrón de diseño con alta cohesión y bajo acoplamiento, de modo fábrica modelo abstracto ha sido ampliamente utilizado.
  • Cuando una familia de productos de múltiples objetos están diseñados para trabajar en conjunto, se puede asegurar que los clientes utilizan siempre sólo los objetos de la misma familia de productos. Esta necesidad de algunos para determinar su comportamiento en función de la situación actual de los sistemas de software, es un modo de diseño muy práctico.
  • La adición de nueva fábrica de hormigón y la familia de productos con facilidad, sin necesidad de modificar el sistema existente, de acuerdo con "el principio de apertura y cierre."

defecto

  • Cuando se agrega un nuevo objeto producto, difícil extender la fábrica abstracta para producir nuevos tipos de productos, esto se debe a la disposición de todos los posibles conjuntos de productos se han creado en el papel abstracta de fábrica, para apoyar a los nuevos tipos de productos que significa que la interfaz extenderse, lo que implicaría modificaciones en el papel de la fábrica abstracta y todas sus subclases, obviamente, lograr una mayor inconveniente.
  • El principio de apertura y cierre de la inclinación de la (aumento de nuevas fábricas y familiares fáciles de productos, añadiendo nueva jerarquía de problemas del producto).

La degradación del patrón de la fábrica

Cuando el patrón de fábrica abstracta en cada clase de fábrica de hormigón crea sólo una orientación de producto, es decir, sólo hay una jerarquía de productos, el resumen degenerada patrón de la fábrica en un patrón método de fábrica;
cuando el método de fábrica consolidaciones modelo abstracto de plantas y plantas específicas, proporcionando una unificadas cuando la fábrica para crear productos objeto y crear un método de fábrica objeto está diseñado para métodos estáticos, el patrón degenerada método de fábrica en un patrón de fábrica simple.

Modo de constructores (Builder)

modo motivación

Tanto si se trata o en el sistema de software, hay algunas objeto complejo en el mundo real, tienen una pluralidad de elementos, tales como automóviles, que comprenden una rueda, un volante, un transmisor y otros componentes. Para la mayoría de los usuarios, sin conocer los detalles de estos componentes se ensamblan, apenas un componente utilizado solo, pero el uso de un coche completo, puede ser diseñado y descrito por su modo de constructor, el Builder y el proceso de montaje se puede separar, paso a paso, para crear un objeto complejo. Los usuarios sólo tienen que especificar el tipo de objetos complejos se puede obtener el objeto, sin tener que conocer los detalles específicos de su estructura interna.

En el desarrollo de software, también hay un gran número de objetos complejos, como los automóviles, tienen una serie de propiedades de miembro, atributos de algunos de estos miembros es un miembro de los objetos de texto de referencia. Y en estos complejos objetos, puede haber algunas restricciones, tales como ciertos atributos no hay ningún valor objetos complejos no se pueden usar como un producto completo; antes de la asignación de una propiedad debe seguir un cierto orden, una propiedad no tiene valor, otra propiedad y por tanto no pueden ser asignados.

objeto complejo es equivalente a un coche para ser construido, y las propiedades de los corresponde objeto a parte del coche, el proceso de construcción es equivalente al producto del proceso de combinación de los componentes. Dado que la combinación de procesos de los componentes es muy complicado, y por lo tanto, el proceso de combinación de estos componentes a menudo se "exterioriza" a un llamado constructor de objeto, el constructor se devuelve al cliente es que se complete un objeto producto completo ya construido, y el usuario no necesita preocupación el objeto contiene propiedades y sus métodos de montaje, este es el modo de modo de motivación constructor.

Definición de esquemas

Representa el constructo y su separación de un objeto complejo, de tal manera que el mismo proceso de construcción puede crear diferentes representaciones.

El Builder es un paso a paso para crear un objeto complejo, lo que permite que el usuario puede construir con ellas únicamente especificando el tipo y contenido de objetos complejos, los usuarios no necesitan saber los detalles específicos del interior del edificio. El Builder pertenecen al tipo de modo de creación de objetos. Dependiendo de la traducción del chino, pero también puede ser llamado el Builder modo generador .

estructura de modos

  • Constructor: resumen constructor
  • ConcreteBuilder: Constructor específica
  • Directora: comandante
  • papeles de producto: Producto

El generador de clase abstracta define un método de crear el método del producto y de retorno;

Modo constructor estructura también presenta un comandante como director, el papel de esta clase son principalmente dos: por un lado, se aísla el cliente y el proceso de producción y, por otro lado, es responsable de controlar el proceso de generación del producto. Comandante para el programa constructor abstracto, los clientes sólo necesita saber el tipo específico de constructor, puede a través de los comandantes método de clase pertinentes llaman a los constructores vuelve un objetivo completo del producto

En el código de cliente, sin preocupación para el producto proceso de montaje objeto específico, simplemente determinar el tipo específico de constructor puede, los constructores modelo construido se comportará con el objeto de objetos complejos separados, de modo que el mismo proceso de construcción puede crear rendimiento diferente.

Ejemplos

KFC paquete

El Builder puede ser utilizado para describir cómo crear paquete de KFC: El paquete es un objeto complejo, que comprende típicamente elemento básico (tales como hamburguesas, rollo de pollo) y bebidas (zumos, refrescos de cola, etc.), diferentes paquetes tienen diferente composición sección, y la operadora puede KFC a demanda de los clientes, el conjunto de estos componentes paso a paso, una estructura de paquete completo, y devuelto al cliente.

ventaja

  • En el modo de constructor, el cliente no tiene que conocer los detalles de la composición interna del producto, el producto en sí y el proceso de creación del producto desconectadas, de forma que el mismo proceso de creación puede crear diferentes objetos de productos.
  • Cada constructores específicos son relativamente independientes, independientemente de otras ayudas específicas, por lo que puede reemplazar fácilmente constructor específico o añadir nuevo constructor concreto, los usuarios utilizan diferentes constructor específica puede conseguir a un diferentes objetos de productos.
  • Puede más finamente controlar el proceso de creación del producto. El paso de crear los productos de descomposición complejas de diferentes maneras, por lo que la creación de más claro y más fácil de usar programa para controlar el proceso de creación.
  • Añadir un nuevo constructor de hormigón sin modificar el código de la biblioteca original de la clase para facilitar el comandante clase de expansión para el sistema de programación de clase constructor abstracto, en línea con "el principio de apertura y cierre."

defecto

  • Los productos creados Builder tienen generalmente más en común, que es parte de semejante, si la diferencia entre un gran producto no es adecuado para utilizar el Builder, por lo que su uso está sujeto a ciertas restricciones.
  • Si los cambios internos en la complejidad del producto, puede causar una gran cantidad de necesidad de definir clases constructoras concretas para implementar este cambio, hacer que el sistema se vuelva muy grande.

modo de aplicación

En muchos programas de juego, incluyendo un mapa del cielo, tierra, fondo parte, incluidos los caracteres humanos, ropa, equipo y otros componentes pueden estar usando el diseño Builder, crear diferentes tipos de mapas con diferentes constructor específica o figuras.

Singleton (Patrón Singleton)

modo motivación

Para algunas clases de sistemas, sólo una instancia es importante, por ejemplo, un sistema puede contener trabajo de impresión múltiple, pero sólo puede tener un trabajo están trabajando, un sistema puede ser sólo un gestor de ventanas o sistema de archivos , un sistema puede tener un dispositivo de temporización o ID (número) del generador.

¿Cómo asegurar que sólo una instancia de una clase, y este caso es fácil acceder a ella? Definir una variable global puede estar seguro de que el objeto se puede acceder en cualquier momento, pero no puede impedir que instanciar objetos múltiples.

Una mejor solución es dejar que la única instancia de la clase en sí responsable de guardarlo. Esta clase se puede garantizar que no se crea ninguna otra instancia, y puede proporcionar un método para acceder a la instancia. Este es el patrón Singleton modo de motivación.

Definición de esquemas

Singleton garantizar sólo una instancia de una clase en particular, y para crear una instancia de la instancia de todo el sistema y para proporcionar esta clase se llama Singleton clase que proporciona el método de acceso global.

Importante única forma de realización tiene tres modos: En primer lugar, sólo una instancia de una clase; segundo, debe crear una instancia de su propia, sino que debe proporcionar su propio tres en este ejemplo, el entero sistema. patrón Singleton es un objeto para crear el esquema. modo de Singleton y lista de miembros o el estado de un solo modo.

estructura de modos

Análisis del patrón

Publicados 143 artículos originales · ganado elogios 45 · Vistas a 70000 +

Supongo que te gusta

Origin blog.csdn.net/z714405489/article/details/100931236
Recomendado
Clasificación