Patrones de Diseño

12
Patrones de diseño Un patrón de diseño es una solucion repetida generalmente aplicada a un problema comunmente ocurrente en el diseño de software. Un patrón de diseño no es una solucion final absoluta que puede transformarse directamente a código, es una descripción o plantilla de como resolver un problema que puede usarse en muchas situaciones diferentes. Los patrones de diseño pueden acelerar el proceso de desarrollo, al proporcionar paradigmas que muchas veces han sido probados útiles. Patrones de creación Estos patrones de diseño tratan acerca de la instanciación de clase. Esta clase puede dividirse en patrones de creación de clases y patrones de creación de objetos. Los patrones de creación de clases usan herencia en el proceso de instanciación y los patrones de creación de objetos usan la delegación para realizar el trabajo. Abstract Factory Provee una interfaz para crear f amilias de objetos relacionados o dependientes, sin especificar sus clases concretas. Builder  Separa la construcción de un objeto complejo de su representación de tal manera que el mismo proceso de construcción pueda crear distintas representaciones.

Transcript of Patrones de Diseño

  • Patrones de diseo Un patrn de diseo es una solucion repetida generalmente aplicada a un problema comunmente ocurrente en el diseo de software. Un patrn de diseo no es una solucion final absoluta que puede transformarse directamente a cdigo, es una descripcin o plantilla de como resolver un problema que puede usarse en muchas situaciones diferentes.

    Los patrones de diseo pueden acelerar el proceso de desarrollo, al proporcionar paradigmas que muchas veces han sido probados tiles.

    Patrones de creacin Estos patrones de diseo tratan acerca de la instanciacin de clase. Esta clase puede dividirse en patrones de creacin de clases y patrones de creacin de objetos. Los patrones de creacin de clases usan herencia en el proceso de instanciacin y los patrones de creacin de objetos usan la delegacin para realizar el trabajo. Abstract Factory

    Provee una interfaz para crear familias de objetos relacionados o dependientes, sin especificar sus clases concretas.

    Builder

    Separa la construccin de un objeto complejo de su representacin de tal manera que el mismo proceso de construccin pueda crear distintas representaciones.

  • Factory Method

    Define una interfaz para crear un objeto, pero deja que las subclases decidan que clase instanciar. Permite que una clase delegue la creacin de objetos a sus subclases.

    Object Pool

    Evade costosa adquisicin y gasto de recursos, mediante el reciclado de objetos que no se encuentran en uso.

    Prototype

  • Especifica el tipo de objetos a crear, usando una instancia prototipo y creando nuevos objetos copiando este prototipo.

    Singleton

    Garantiza que una clase slo tenga una instancia y provee de un punto de acceso global a ella.

    Patrones estructurales Estos patrones de diseo tratan sobre la composicion de clases y objetos. Estos patrones usan herencia para componer interfaces. Definen maneras de componer un objeto para obtener nuevas funcionalidades.

    Adapter

    Transforma la interfaz de una clase en una interfaz que el cliente espera. Este patron permite que distintas clases trabajen en juntas.

  • o

    Bridge

    Desempareja la abstraccion de un objeto de su implementacion de tal manera que las dos puedan variar independientemente.

    Composite

    Compone objetos en estructuras tipo rbol para representar jerarquas de parte completa. Permite tratar objetos individuales y composiciones de objetos uniformemente.

  • Decorator

    Agrega responsabilidades a un objeto dinmicamente. Provee de una alternativa flexible a subclasificacin para extender la funcionalidad.

    Facade

    Provee de una interfaz unificada de un conjunto de interfaces en un subsistema. Define una interfaz de alto nivel para hacer un subsistema fcil de usar.

    Flyweight

    Usa el compartir para soportar grades nmeros de objetos "de grano fino" de manera eficiente.

  • Private Class Data

    Controla el acceso de escritura a los atributos de una clase.

    Proxy

    Proporciona un representante de otro objeto para controlar el acceso al objeto que est siendo representado.

  • Patrones de comportamiento Estos patrones tratan acerca de la comunicacion entre objetos y conjuntos de estos. Chain of responsibility

    Evita emparejar el objeto que enva una peticin con el objeto que recibe esa peticin, al permitir que mas de un objeto pueda tomar la responsabilidad de la peticin enviada. Encadena los objetos que podrn recibir la peticin y pasa la peticin a lo largo de la cadena hasta que un objeto acepte la peticin.

    Command

    Transforma una peticion en un objeto de tal manera que puedas catalogar clientes con diferentes peticiones, mantener un registro de las peticiones y soportar el deshacer operaciones.

    Interpreter

  • Permite definir una representacin de la gramtica de un lenguaje para usarla en un interprete del lenguaje.

    Iterator

    Provee de una manera de acceder secuencialmente a los elementos de una coleccin sin exponer su representacin interna.

    Mediator

    Crea un objeto mediador que encapsula el cmo un conjunto de objetos interactan. Mediator promociona la organizacin de como interactan los objetos, sin necesidad de que entre ellos mismos se referencen.

  • Memento

    Sin violar el principio de encapsulacin, captura y externaliza el estado interno de un objeto de manera que el objeto pueda regresar al estado despus.

    Null Object

    Encapsula la ausencia de un objeto al proveer de una alternativa que ofrece un comportamiento predefinido de "hacer nada". Permite que el comportamiento de hacer nada, sea el valor predefinido de un objeto.

  • Observer

    Define una dependencia de uno a muchos entre objetos de tal manera que cuando un objeto cambie su estado, todas las dependencias del objeto sean notificadas y actualizadas automticamente.

    State

    Permite que un objeto cambie su comportamiento al cambiar su estado. El objeto parecer que cambio de clase.

  • Strategy

    Crea un conjunto de algoritmos encapsulados intercambiables. Permite que un algoritmo vare independientemente de los clientes que los usan.

    Template method

    Otorga el derecho a subclases de re definir ciertos pasos o procedimientos de un algoritmo sin cambiar la estructura de tal algoritmo.

    Visitor

  • Permite definir una operacin nueva sin cambiar las clases de los elementos en los cuales opera.

    Bibliografa (e imgenes tomadas de): http://sourcemaking.com/design_patterns

    http://www.oodesign.com/