Patrones de diseño

De FdIwiki ELP
Revisión a fecha de 23:42 16 ene 2017; Charmander (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Los patrones de diseño son estructuras de programación que ponen solución a problemas comunes a los que los programadores tienen que enfrentarse, es decir, la forma de resolver un problema. Existen muchos tipos de patrones, pero a todos ellos les une unas características comunes para que sean re utilizables por otros programadores.

Características

Las características principales de los patrones de diseño son:

  • Estandarizar el lenguaje. A si los programadores pueden entender el código de forma general.
  • No centrarse en soluciones a problemas ya resueltos. Con esto se ayuda a mantener un lenguaje limpio y ordenado
  • Código reutilizable. Ya que la idea es la de compartir soluciones, al crear un código reutilizable permite que se vuelvan a usar de forma sencilla el código.

Clasificación

Existen muchos tipos de patrones y con el tiempo se ha encontrado un denominante común en ellos. Este denominante es el tipo de problema que resuelvan y gracias a ello se ha podido encontrar una clasificación para los patrones.

Esta clasificación es:

Creacionales: Sirve para resolver los problemas de creación de instancia.

  • Singleton: Restringe la instanciación de una clase o valor de un tipo a un solo objeto.
  • Prototype (prototipo): Clona instancias cogiéndolas de un prototipo
  • Método de Fabricación (Factory Method): Unas subclases constructora que crea la clase a implementar.

Estructurales: Resuelve problemas sobre las estructuras de una clase.

  • Bridge (Puente) Separa la abstracción de la implementación para así modificarlas independientemente.
  • Peso Ligero (Flyweight): Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con información idéntica.
  • Facade (Fachada) Provee una interfaz unificada y simple para acceder a un sistema más complejo.

De comportamiento: Ofrece soluciones respecto a la interacción y responsabilidad entre objetos y clases.

  • Intérprete (Interpreter): Nos crea un intérprete de lenguaje para una gramática simple y sencilla.
  • Observer (Observador) Nos notifica y actualiza automaticamente los objetos que dependen de él cuando un objeto cambie de estado.
  • Orden (Command): Crea la peticion en forma de objeto y así podemos tratarla como tal con todas sus ventajas.


Existen más patrones, estos solo son ejemplos. No es necesario saberse todos los patrones que existen, pero si viene bien saber que existen, como buscarlos y como utilizarlos para futuras implementaciones