Sunteți pe pagina 1din 13

PATRONES DE DISEO

FACHADA COMPOSITOR MEMENTO

FACHADA
Un patrn de diseo es: una solucin estndar para un problema comn de programacin una tcnica para flexibilizar el cdigo hacindolo satisfacer ciertos criterios un proyecto o estructura de implementacin que logra una finalidad determinada un lenguaje de programacin de alto nivel una manera ms prctica de describir ciertos aspectos de la organizacin de un programa conexiones entre componentes de programas la forma de un diagrama de objeto o de un modelo de objeto

Un patrn de diseo puede considerarse como un documento que define una estructura de clases que aborda una situacin particular. Los patrones de diseo se dividen en tres grupos principales:
Patrones de creacin: Patrn de Fbrica Abstracta, Patrn Constructor, Patrn del Mtodo de Fabricacin, Patrn Prototipo, Patrn de Instancia nica (Singleton).

Patrones estructurales: Patrn Adaptador, Patrn Puente, Patrn Compuesto, Patrn Decorador, Patrn de Fachada, Patrn de Peso Mosca, Patrn Apoderado. Patrones funcionales: Patrn de Cadena de Responsabilidad, Patrn de Comando, Patrn Intrprete, Patrn Iterador, Patrn Mediador, Patrn Memento, Patrn Observador, Patrn de Estado, Patrn de Estrategia, Patrn del Mtodo Plantilla, Patrn Visitante.

El patrn de diseo fahcada sirve para proveer de una interfaz unificada sencilla que haga de intermediaria entre un cliente y una interfaz o grupo de interfaces ms complejas.

Hacer una biblioteca de software ms fcil de usar y entender, ya que facade implementa mtodos convenientes para tareas comunes; Hacer el cdigo que usa la librera ms legible, por la misma razn; Reducir la dependencia de cdigo externo en los trabajos internos de una librera, ya que la mayora del cdigo lo usa Facade, permitiendo as ms flexibilidad en el desarrollo de sistemas;

Envolver una coleccin mal diseada de APIs con un solo API bien diseado.

COMPOSITOR

El

patrn

Compositor

se

puede

utilizar

cuando:

Se busca representar una jerarqua de objetos como parte-todo. Se busca que el cliente puede ignorar la diferencia entre objetos primitivos y compuestos (para que pueda tratarlos de la misma manera).

EJEMPLO DE UNA ESTRUCTURA DE UN COMPOSITOR


Componente (Graphic)
Declara la interface para los objetos de la composicin. Implementa un comportamiento comn entre las clases. Declara la interface para acceso y manipulacin de hijos. Declara una interface de manipulacin a los padres en la estructura recursiva (opcional).

Leaf HOJA (Rectangle, Line, Text)


* Representa los objetos hoja (no poseen hijos). * Define comportamientos para objetos primitivos.

Compositor (Picture) * Define un comportamiento para objetos con hijos. * Almacena componentes hijos. * Implementa operaciones de relacin con los hijos.

Cliente:
* Manipula objetos de la composicin a travs de componente.

MEMENTO

El patrn de diseo Memento, tiene como finalidad almacenar el estado de un objeto (o del sistema completo) en un momento dado de manera que se pueda restaurar en ese punto de manera sencilla. Para ello se mantiene almacenado el estado del objeto para un instante de tiempo en una clase independiente de aquella a la que pertenece el objeto (pero sin romper la encapsulacin), de forma que ese recuerdo permita que el objeto sea modificado y pueda volver a su estado anterior.

Tambien este modelo sirve para capturar y externalizar el estado interno de un objeto para restaurarlo ms tarde

sin violar el encapsulamiento. Puede ser usado en combinacin con los Patrones Command e Iterator.

Memento: Almacena el estado interno del objeto Originator, protege del acceso por parte de objetos distintos al Originator. Originator: crea un objeto memento, que contiene una foto fija de su estado interno.

Caretaker: es el responsable de mantener la seguridad del objeto memento, no opera o examina el contenido de memento

Podemos distinguir en el esquema la presencia de 3 entidades. Por un lado tenemos al Originador, que es la instancia del objeto de la que queremos salvar el estado. Por otro lado tenemos el Consumidor (o cliente) que es la clase que necesita obtener y almacenar ese estado para, en un momento futuro, si procede, restaurarlo. Finalmente el objeto Memento encapsula de forma opaca el estado del originador permitiendo que el consumidor lo almacene y lo utilice para restaurar el estado de este en cualquier momento.