Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Patrones MVC , DAO, Observer, Memento

No description
by

Hernan Buitrago

on 29 April 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Patrones MVC , DAO, Observer, Memento

Patrones MCV, DAO, Observer, Memento Patrones de Diseño "Los patrones de diseño son el esqueleto de las soluciones a problemas comunes de sesarrollo de software" Base para la búsqueda de soluciones a problemas comunesen el desarrollo de software En general los patrones contienen
4 elementos esenciales:

Nombre
Problema
Solucion
Consecuencias MVC Modelo Vista Controlador Patrón de diseño cuyo objetivo es organizar el flujo de datos en las aplicaciones permitiendo construir sistemas mas robustos y faciles de extender. Componentes Modelo: Contiene todos los datos, estados y logica de la aplicacion (Reglas del negocio). Es responsable de:
Acceder a la capa de almacnamiento de datos.
Define las reglas del negocio.
Lleva un registro de las vistas y contoladores del sistema Vista: Da una presentacion del modelo. Generalmente esta obtiene los datos y estados que necesita mostrar desde el modelo. Es la interfaz que ve el usuario. Es responsable de:
Recibir datos del modelo y los muestra al usuario.
Tiene un registro de su controlador asociado. Controlador: Toma las entradas del usuario, entiende y gestiona lo que deben hacer en el modelo. Es responsable de:
Recibe los eventos de entrada.
Contiene las reglas de gestion de eventos (SI evento Z, entonces accion W) Problema Solucion Las interfaces de usuario son cambiadas con frecuencia

Diferentes paradigmas de interfaz. (Digitar informacion, mover botones...)

Cambios en la funcionalidad se reflejan en la interfaz El modelo representa la funcionalidad y los datos esenciales, y es independiente de la representacion de la interfaz.
Cada vista tiene asociado un controlador, que recibe eventos y los traduce a solicitud de servicios.
La vista obtiene datos del modelo y las despliega para el usuario. Ventajas: La aplicacion esta implementada modularmente.

Sus vistas muestran informacion actualizada siempre.

Las modificaciones a las vistas no afectan a los otros modulos de la aplicacion.

Utilizada para construir grandes aplicaciones Se facilita la depuracion de errores

Favorece la reutilizacion de codigo

Facilita el mantenimiento

Las vistas proveen mayor flexibilidad y agilidad

Mayor escalabilidad

Menor acoplamiento

Mayor cohesion Desventajas: El tiempo de desarrollo es grande.

Es un patron orientado a objetos por lo que su implementacion es muy costosa y dificil en lenguaje que no utiliza este paradigma. DAO Data Access Object Diagrama de Secuencia: Analogía: Problema Solución La necesidad de acceso a datos de una manera fácil.

Diferentes API's para el acceso a mecanismos

Dependencia de código (Difícil mantenimiento) Suministra una interfaz común entre la aplicación y uno o más repositorios de datos.
Soluciona el problema del diferencial de impedancia.
Administra las conexiones con la fuente de datos, recupera y almacena información en la fuente de datos. Ventajas: Centralizar el control de acceso a datos.

Transparencias en el acceso a datos.

Facilita la migración

Organiza todos los accesos a datos en una capa separada. Desventajas: Añade una nueva capa

Necesita crearse una jerarquía de clases

Aumenta la complejidad del diseño inicial Estructura: Es un método muy simple, el cual se trata de mapear objetos a bases de datos. Para generar un patrón DAO, un desarrollador podría escribir una clase que contiene un atributo para cada campo en la tabla clientes. BusinessObject: Representa los datos del cliente. 

DataAccessObject: El DataAccessObject es el objeto principal de este patrón.  Data Source: Esto representa una aplicación de origen de datos. 

TransferObject: Esto representa una transferencia de objetos utilizados como soporte de datos. Descripción: Relación con otros patrones Data Transfer Object(DTO).
Factory Implementación En primer lugar, debemos hacer las clases que representan nuestros datos. Implementación Luego hacemos una interface. Esta interface tiene que tener los métodos necesarios para obtener y almacenar Personas. Implementación Se hace la implementación de la InterfaceDAO, ya contra una base de datos concreta o usando una herramienta iBATIS, Hibernate, etc., determinada. Memento Es un patrón de diseño de software, y está catalogado como un patrón de comportamiento.
Se utiliza para guardar el estado de un objeto y poder luego restaurar el objeto a un estado previo. Relación con otros patrones Implementación Implementación Implementación Problema Solución Ventajas: Desventajas: Estructura: Descripción: Se quiere poder restaurar el sistema desde estados pasados.

Se desea facilitar el hacer y deshacer de determinadas operaciones. Guardar una "Instantánea" del estado de un objeto, de forma que pueda ser devuelto a su estado original sin revelar su contenido al resto del mundo. Preservación de los límites de la encapsulación.


Definición de interfaces reducidas y amplias.


Simplifica al Creador El uso de mementos puede ser costoso, es costoso crear los objetos memento si se tiene que almacenar todas las partes del estado del originator.

El uso frecuente de Mementos para almacenar estados internos de gran tamaño, podría resultar costoso y perjudicar el rendimiento del sistema. Memento

Guarda el estado interno del objeto Creador. El memento puede guardar tanta información del estado interno del creador como sea necesario a discreción del creador.
Protege frente a accesos de otros objetos que no sean el creador.


Creador

Crea un memento que contiene una instantánea de su estado interno actual.

Conserje

Es responsable de guardar en lugar seguro el memento. Observer Este patron define una relacion uno a muchos, entre un grupo de objetos.
Cuando un objeto cambia su estado, todos sus dependientes son notificados y actualizados automaticamente. Descripcion: Los objetos claves son "Subject" y "Observer".

La motivacion de este patron es la reutilizacion.

Puede no haber relacion directa entre objetos.

El tipo de interaccion es conocida como Publicar-Suscribir.

El Subject es el publicador de notificaciones.

Cualquier numero de Observers pueden suscribirse para recibir notificaciones. Aplicabilidad: Cuando una abstraccion tiene 2 aspectos o mas, uno dependiente del otro.

Cuando un objeto requiere el cambio de otros, y no se sabe cuantos objetos necesitan ser cambiados.

Cuando un objeto debe notificar a otros objetos sin estimar cuantos son estos. Estructura: Participantes: Subject: Conoce sus Observers. Cualquier numero de observers pueden observar a Subject.
Provee una interfaz para adjuntar y separar objetos Observer. Observer: Define una interfaz de actualizacion para los objetos Observer que deben ser notificados de los cambios en el Subject. ConcreteSubject: Almacena estados de interes para los objetos ConcreteObserver.
Envia una notificacion a sus Observers cuando el estado cambia ConcreteObserver: Mantiene referencia de objetos ConcreteSubject.
Almacena los estados que deben ser consistentes con los Subject.
Implementa la actualizacion del Observer. Colaboraciones: Command.

State.

Iterator. Consecuencias: Beneficios y Obligaciones Acoplamiento abstracto entre Subject y Observer.

Soporte para la comunicacion difundida.

Actualizaciones Inesperadas Implementacion: Guardar temporalmente la perspectiva de una venta. 1. Asignacion del Subject a los Observers

2. Observar mas de un Subject

3. Quien realiza la actualizacion?

4. Referencias flotantes a subjects eliminados

5. El estado del subject es seguro?

6. Evitar los protocolos especificos de actualizacion del Observer

7. Especificar explicitamente las modificaciones de interes

8. Encapsular contexto, actualizar semantica

9. Combinar las clases Subject y Object Colaboraciones Un conserje solicita un memento a un creador, lo almacena durante un tiempo y se lo devuelve a su creador Patrones relacionados: Mediator Singleton Analogia: Hernan Dario Buitrago Morales - 624652
Diego Alejandro Castellanos H - 624680 Bibliografia: Head First - Design Patterns. Eric Freeman & Elisabeth Freeman - O'Reilly

Design Patterns. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Addison Wesley. 2008

http://www.slideshare.net/An3s/patron-memento

http://jms32.eresmas.net/web2008/documentos/informatica/documentacion/logica/patrones/memento/2008_08_12_MementoDescripcion.html#Refh2_Proposito Gracias por su atencion! Aprende rápido mi perro!!
Full transcript