Patrones de diseño

De FdIwiki ELP
Revisión a fecha de 13:32 18 ago 2015; Alvaro Quesada (Discusión | contribuciones)

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

Introducción

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.