Está en la página 1de 10

PATRONES

Composite (Estructural) Permite construir objetos de complejidad mayor mediante otros mas sencillos de forma recursiva. Se usa cuando se quieren representar jerarquas todo/parte de objetos. Ej:

Template Method (Comportamiento) Define en una operacin el esqueleto de un algoritmo, delegando en las subclases algunos de sus pasos, esto permite que las subclases redefinan ciertos pasos de un algoritmo sin cambiar su estructura.

Adapter (Estructural) Adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podra utilizarla. Ej:
Supongamos que tenemos la siguiente jerarquia de clases que definen varias impresoras que imprimen documentos en distintos formatos. Si Hemos creado una jerarquia de clases en la que el mtodo imprimir (pseudo cdigo) se encargara de generar los distintos tipos de documentos .Ahora bin que pasara si otro desarrollador ya hubiera desarrollado una clase para ficheros excel y quisieramos usarla dentro de nuestra jerarquia.

Si queremos encajar de una manera correcta la clase ImpresoraExcel en nuestra jerarquia de clases deberemos hacer uso de una clase Adaptador . Esta clase hereda de la clase impresora y se encarga de adaptar los mtodos de la clase ImpresoraExcel a la jerarqua que ya poseemos

Decorator (Estructural) Aade funcionalidad a una clase dinmicamente. Ej: Imaginemos que estamos trabajando en un juego de pelea, en donde cada jugador tiene su propio personaje. Inicialmente cada golpe produce un dao de 10 puntos. Ahora digamos que a medida que el jugador vaya coleccionando distintas piedras, aumenta el poder de sus golpes. Partiendo de la clase encargada de calcular el dao que produce un golpe . Como la modificamos para que a partir de las piedras obtenidas, aumente la capacidad de causar dao a un oponente? Este patrn de diseo nos permite modificar, retirar o agregar responsabilidades a un objeto dinmicamente. Cuando digo dinmicamente, me refiero a que las funcionalidades se modifican/agregan/retiran durante la ejecucin del script o aplicacin. Singleton (Creacional) Controla la creacin de instancias de una clase. Asegura que una clase tenga una sola instancia y Provee una acceso global a esa nica instancia.

class Patron Singleton

CuentaDeMail {1} + + + + + + + cuentaDeMail: CuentaDeMail = new CuentaDeMai... direccionEmail: String evaluaReglas: Boolean = true nombreUsuarioMail: String passwordMail: String servidorMail: String crearCarpeta(String) : void crearMail(String, String, String) : void desEtiquetarMail(Mail, Etiqueta) : void eleminarCarpeta(String) : void enviarMailProximoChequeo(Mail) : void etiquetarMail(Mail, Etiqueta) : void exportar(EstructuraDeCarpetas, String) : void

pseudocodigo - aplicarReglasAmail(Mail) : void + chequearMails() + enviarMail(Mail) : void pseudocodigo Singleton - CuentaDeMail(String, String, String, String) : void + getCuentaDeMail() : CuentaDeMail getters + getCarpetasDeUsuario() : Collection + getConfiguracionCuentaDeEmail() : ConfiguracionCuentaDeMail + getDireccionDeEmail() : String + getInbox() : EstructuraDeCarpetas + getNombreUsuarioDelMail() : String + getPasswordDelMail() : String + getReglas() : Collection + getUsuario() : Usuario + isEvaluaReglas() : Boolean setters + setEvaluaReglas(Boolean) : void

State (Comportamiento) Modifica el comportamiento de un objeto cuando su estado interno se modifica. Externamente pareceria que la clase del objeto ha cambiado.

Strategy (Comportamiento) Permite disponer de varios metodos para resolver un problema y elegir cual utilizar en tiempo de ejecucion.

Observer (Comportamiento) Define una dependencia de uno a muchos entre objetos, de manera que cuando el objeto cambia, todos sus dependientes son notificados y actualizados automaticamente.

Command (Comportamiento ) Encapsula una operacin en un objeto, permitiendo ejecutar dicha operacin sin necesidad de conocer el contenido de la misma.

Abstract Factory (Creacional) Define una interfaz para crear familias de objetos relacionados o dependientes, sin especificar sus clases concretas.

Factory Method (Creacional ) Centraliza en una clase constructora la creacion de objetos de un subtipo de un tipo determinado, ocultando al usuario la casuistica, es decir, la diversidad de casos particulares que se pueden prever, para elegir el subtipo a crear. Ej:
Las prensas de moldeado a inyeccin sirven para explicar este patrn. Los fabricantes de juguetes de plstico procesan plstico en polvo para moldeado, e inyectan el plstico en moldes con las formas deseadas. La clase de un juguete (auto, figura, etc.) es determinada por el molde.

Prototype (Creacional) Crea nuevos objetos , clonando o copiando una instancia creada previamente. Ej: Se desea permitir al usuario crear nuevos personajes y seleccionar para cada sesin del juego personajes de una coleccin de personajes creados.

Facade (Estructurales) Brinda una interfaz unificada para un conjunto de interfaces en un subsistema , haciendolo mas facil de usar. Simplifica el acceso a dichas clases dado que el cliente solo lo hace a traves de la interfaz. Ej: Queremos dotar a los desarrolladores de la capa de presentacion de un mecanismo unificado de acceso a la capa de dominio.

Proxy (Estructurales) Proporciona un intermediario para controlar el acceso a un objeto determinado. Ej:
El patrn Proxy proporciona un sustituto o placeholder para proporcionar acceso a un objeto. Un cheque o un giro bancario es un Proxy para los fondos en una cuenta. Un cheque puede reemplazar al efectivo al realizar compras y, finalmente, controla el acceso al dinero en la cuenta del emisor.

Iterator (Comportamiento) Permite realizar recorridos sobre objetos compuestos independientemente de la implementacin de estos. Ej:
El patrn Iterator proporciona maneras de acceder a los elementos de un objeto contenedor (coleccin) de manera secuencial sin exponer la estructura del objeto. Los archivos son objetos similares a las colecciones. En oficinas en donde el acceso a los archivos es hecho a travs de administrativos o secretarias, el patrn Iterator es demostrado con la secretaria actuando comoIterator. Muchas comedias de televisin han sido creadas al rededor de la premisa de un ejecutivo tratando de entender el sistema de archivado de su secretaria. Para el ejecutivo, dicho sistema es confuso e ilgico, pero la secretaria es capaz de acceder a los archivos rpida y eficientemente. En viejos aparatos de televisin, un dial era utilizado para cambiar los canales. Para realizar zapping, el televidente deba girar dicho dial a travs de cada posicin que representaba un canal, independientemente de si ese canal tena o no seal. En los aparatos modernos, se utilizan los botones siguiente y previo. Cuando un televidente presiona el botn siguiente, se muestra al siguiente canal sintonizado. Consideremos estar mirando televisin en la habitacin de un hotel en una ciudad desconocida. Al navegar por los canales, el nmero del canal no es importante, pero el programa s lo es. Si el programa de un canal no resulta interesante, el televidente puede solicitar el siguiente canal, sin conocer el nmero.

Visitor (Comportamiento) Define (agregar, eliminar o modificar) operaciones sobre objetos de una jerarqua de clases sin modificar las clases sobre las que opera.

Ej: Se quiere agregar nuevas operaciones sin necesidad de modificar la estructura interna de los empleados.

Memento (Comportamiento) Permite volver a los estados anteriores del sistema. Ej: Se quiere registrar los movimientos del robot de manera de reproducir la secuencia de juego.

También podría gustarte