Articulo de referencia

Patrón de creación

En ingeniería de software , los patrones de diseño creacionales son patrones de diseño que se ocupan de los mecanismos de creación de objetos , intentando crear objetos de una m...

En ingeniería de software , los patrones de diseño creacionales son patrones de diseño que se ocupan de los mecanismos de creación de objetos , intentando crear objetos de una manera adecuada a la situación. La forma básica de creación de objetos podría dar lugar a problemas de diseño o a una mayor complejidad del diseño debido a la falta de flexibilidad en los procedimientos de creación. Los patrones de diseño creacionales resuelven este problema controlando de algún modo esta creación de objetos.

Descripción general

Los patrones de diseño creacionales se componen de dos ideas dominantes. Una es encapsular el conocimiento sobre qué clases concretas utiliza el sistema. Otra es ocultar cómo se crean y combinan las instancias de estas clases concretas. [1]

Los patrones de diseño creacionales se clasifican además en patrones de creación de objetos y patrones de creación de clases, donde los patrones de creación de objetos se ocupan de la creación de objetos y los patrones de creación de clases se ocupan de la instanciación de clases. En mayor detalle, los patrones de creación de objetos delegan parte de la creación de objetos a otro objeto, mientras que los patrones de creación de clases delegan la creación de objetos a subclases. [2]

Cinco patrones de diseño conocidos que forman parte de los patrones de creación son los siguientes:

  • patrón de fábrica abstracto , que proporciona una interfaz para crear objetos relacionados o dependientes sin especificar las clases concretas de los objetos. [3]
  • Patrón constructor , que separa la construcción de un objeto complejo de su representación de modo que el mismo proceso de construcción puede crear diferentes representaciones.
  • Patrón de método de fábrica , que permite que una clase posponga la instanciación a subclases. [4]
  • patrón de prototipo , que especifica el tipo de objeto a crear utilizando una instancia prototípica y crea nuevos objetos clonando este prototipo.
  • patrón singleton , que garantiza que una clase solo tenga una instancia y proporciona un punto de acceso global a ella. [5]

Definición

Los patrones de creación tienen como objetivo separar un sistema de cómo se crean, componen y representan sus objetos. Aumentan la flexibilidad del sistema en términos de qué, quién, cómo y cuándo se crean los objetos. [6]

Uso

Como la ingeniería de software moderna depende más de la composición de objetos que de la herencia de clases, el énfasis se desplaza de los comportamientos de codificación rígida hacia la definición de un conjunto más pequeño de comportamientos básicos que se pueden componer en otros más complejos. [7] Los comportamientos de codificación rígida son inflexibles porque requieren anular o volver a implementar todo el conjunto para cambiar partes del diseño. Además, la codificación rígida no promueve la reutilización y dificulta el seguimiento de los errores. Por estas razones, los patrones de creación son más útiles que los comportamientos de codificación rígida. Los patrones de creación hacen que el diseño se vuelva más flexible. Proporcionan diferentes formas de eliminar referencias explícitas en las clases concretas del código que necesita instanciarlas. [8] En otras palabras, crean independencia para los objetos y las clases.

Considere aplicar patrones de creación cuando:

  • Un sistema debe ser independiente de cómo se crean sus objetos y productos.
  • Un conjunto de objetos relacionados está diseñado para usarse juntos.
  • Ocultar las implementaciones de una biblioteca de clases o producto, revelando solo sus interfaces.
  • Construcción de diferentes representaciones de objetos complejos independientes.
  • Una clase quiere que su subclase implemente el objeto que crea.
  • Las instancias de clase se especifican en tiempo de ejecución.
  • Debe haber una única instancia y el cliente puede acceder a esta instancia en todo momento.
  • La instancia debe ser extensible sin ser modificada.

Estructura

Diagrama de clases del Patrón Creacional.

A continuación se muestra un diagrama de clases simple que la mayoría de los patrones de creación tienen en común. Tenga en cuenta que los diferentes patrones de creación requieren clases adicionales y con participación diferente.

Participantes :

  • Creador : declara la interfaz del objeto. Devuelve el objeto.
  • ConcreteCreator : Implementa la interfaz del objeto.

Ejemplos

Algunos ejemplos de patrones de diseño creacional incluyen:

  • Patrón de fábrica abstracto : una clase solicita los objetos que necesita de un objeto de fábrica en lugar de crear los objetos directamente
  • Patrón de método de fábrica : centraliza la creación de un objeto de un tipo específico eligiendo una de varias implementaciones
  • Patrón constructor : separa la construcción de un objeto complejo de su representación para que el mismo proceso de construcción pueda crear diferentes representaciones
  • Patrón de inyección de dependencia : una clase acepta los objetos que necesita de un inyector en lugar de crear los objetos directamente
  • Patrón de inicialización perezosa : táctica de retrasar la creación de un objeto, el cálculo de un valor o algún otro proceso costoso hasta la primera vez que se necesita.
  • Patrón de grupo de objetos : evita la adquisición y liberación costosa de recursos reciclando objetos que ya no se utilizan
  • Patrón de prototipo : se utiliza cuando el tipo de objetos a crear está determinado por una instancia prototípica, que se clona para producir nuevos objetos.
  • Patrón singleton : restringe la instanciación de una clase a un objeto

Véase también

Referencias

  1. ^ Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Patrones de diseño. Massachusetts: Addison-Wesley. pág. 81. ISBN 978-0-201-63361-0. Recuperado el 22 de mayo de 2015 .
  2. ^ Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Patrones de diseño. Massachusetts: Addison-Wesley. ISBN 978-0-201-63361-0. Recuperado el 22 de mayo de 2015 .
  3. ^ Freeman, Eric; Freeman, Elisabeth; Sierra, Kathy; Bates, Bert (2004). Hendrickson, Mike; Loukides, Mike (eds.). Patrones de diseño Head First. California: O'Reilly Media. pág. 156. ISBN  978-0-596-00712-6. Recuperado el 22 de mayo de 2015 .
  4. ^ Freeman, Eric; Freeman, Elisabeth; Sierra, Kathy; Bates, Bert (2004). Hendrickson, Mike; Loukides, Mike (eds.). Patrones de diseño Head First. California: O'Reilly Media. pág. 134. ISBN  978-0-596-00712-6. Recuperado el 22 de mayo de 2015 .
  5. ^ Freeman, Eric; Freeman, Elisabeth; Sierra, Kathy; Bates, Bert (2004). Hendrickson, Mike; Loukides, Mike (eds.). Patrones de diseño Head First. California: O'Reilly Media. pág. 177. ISBN  978-0-596-00712-6. Recuperado el 22 de mayo de 2015 .
  6. ^ Judith, Bishop (2007). Patrones de diseño de C# 3.0. California: O'Reilly Media. pág. 336. ISBN 978-0-596-52773-0. Recuperado el 22 de mayo de 2015 .
  7. ^ Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Patrones de diseño. Massachusetts: Addison-Wesley. pág. 84. ISBN 978-0-201-63361-0. Recuperado el 22 de mayo de 2015 .
  8. ^ Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995). Patrones de diseño. Massachusetts: Addison-Wesley. pág. 85. ISBN 978-0-201-63361-0. Recuperado el 22 de mayo de 2015 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Patrón_creacional&oldid=1211548526"