Professional Documents
Culture Documents
Patrones de programacin
una solucin estndar para un problema comn de programacin
Tipos de patrones
Patrones de creacin :
Estos patrones crearn objetos para nosotros de manera que ya no los tendremos qu instanciar directamente, proporcionada nuestros programas una mayor flexibilidad para decidir que objetos usar.
Patrones estructurales :
Nos permiten crear grupos de objetos complejas. Para ayudarnos a realizar tareas Patrones de comportamiento : Nos permiten definir la comunicacin entre los objetos de nuestro sistema y el flujo de la informacin entre los mismos.
Patrones de creacin
Como ya he comentado anteriormente todos los patrones de creacin se encargan de crear instancias de objetos por nosotros.
3
Este tipo de patrn se usa bastante debido a su utilidad. Su objetivo es devolver una instancia de mltiples tipos de objetos, normalmente todos estos objetos provienen de una misma clase padre mientras que se diferencian entre ellos por algn aspecto de comportamiento. El funcionamiento es muy simple y se puede observar en la siguiente figura ( ntese que obviamente puede tambin devolver un nico tipo de objeto ) :
El objeto Factory ser el encargado de decidir segn los parmetros que le pasemos el tipo de objeto que nos devolver. Veamos un pequeo programa de ejemplo: public classVehiculo { // Clasepadredouble velocidad;double peso;....... } public class Camion extends Vehiculo { // primera clase hijaString tipoMercancia;..... } public class Coche extends Vehiculo { // segunda clase hijaString asientos; }
Patrones estructurales
Los patrones estructurales nos describen como formar estructuras complejas a partir de elementos ms simples. Existen dos tipos de patrones de este tipo, de clase y de objeto.
Los patrones de clase nos muestran como la herencia puede ser utilizada para proporcionar tambin una mayor funcionalidad. Los patrones ms conocidos son: Adapter, Bridge, Composite, Decorator, Faade, Flyweight y Proxy.
UML
Es el lenguaje de modelado de sistemas de software ms conocido y utilizado en la actualidad. Es un lenguaje grfico para visualizar, especificar, construir y documentar un sistema.