Patrones de Diseño: Command

Slides:



Advertisements
Presentaciones similares
Internet y tecnologías web
Advertisements

Curso de java básico (scjp)
Observador (observer) Visita (Visitor) Singleton
FACHADA COMPOSITOR MEMENTO
Curso de Java Capitulo 7: Continuación Poo Profesor:
POLIMORFISMO UNIDAD 4.
UML para programadores Java
Servicios Web.
Arquitectura CLARO-TECNOTREE
Introducción a la Orientación a Objetos
"java del lado del servidor" Servlet y JSP Java Server Pages.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
RMI (Remote Method Invocation)
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Encapsulamiento y Abstracción
INTERFAZ DE ACCES DISEÑO DE BASE DE DATOS
Introducción al Software
Lic. Rosemary Torrico Bascopé
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje
Tema 10: Interfaces Antonio J. Sierra.
Diseño de Sistemas. Patrones de Diseño. Geronimo Manso.
Patrones de Comportamiento: Patrón de Diseño Observer
Modelado Arquitectónico
FACTORY METHOD Edmundo Álvarez Jiménez Antonio Fernández Alonso
Mediator (Mediador) Trabajo realizado por: Guillermo Palacios Pelayo
Introducción a la Programación. Lenguaje de Máquina.
Patrones Creacionales
ANDRES FELIPE BORRERO SALAZAR COD ALEXANDRA CARREÑO SALAS COD LUCIO ANIBAL CRIOLLO COD ALEJANDRO RUIZ IDROBO COD
Correo electrónico Internet
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Chain of Responsibility José Manuel Domínguez Arroyo Margarita Lozano Pérez Carlos Ignacio Mantecón Nebreda.
Patrones de diseño DECORATOR Mario Rodríguez Martín
Realizado por: Manuel González Joaquín Windmuller José Lorenzo Rodríguez
Luis Pereda Calvo1 Comportamiento de Objetos Estrategia (Strategy) *Política (Policy)
PATRON DE SOFTWARE: COMMAND
MEMENTO Patrón de Comportamiento Ana María Mateo Jorge P. Andrés
INGENIERIA DE SOFTWARE GUILLERMO OCHOA GAVIRIA Octubre 2006 Factory Method.
Patrones de Diseño Carolina Perozo Julio Padrón Anthony Accardi.
PATRON PROTOTYPE Cristina Merino Héctor Carbajo Alicia Arroyo.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
Patrón Iterator Santiago García Sánchez Rebeca Marcos Salcedo Mª Cristina Zapatero Gironda.
Programación orientada a objetos Capítulo 6 Diseño de clases.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Programación Orientada a Objeto
PATRON OBSERVADOR DEIRY ALI NIETO. El patrón observador lo podemos clasificar como un ejemplo claro de patrones de comportamiento, debido a que este posee.
Estructura del Sistemas Operativos por su Estructura
Patrones de diseño equipo n.1
Cliente-Servidor La arquitectura cliente-servidor permite al usuario en una máquina, llamada el cliente, requerir algún tipo de servicio de una máquina.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
M.C. Pedro Bello López 1 IMPLEMENTACIÓN. M.C. Pedro Bello López2.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
Software.
Acceso a Datos Erick López Ovando Licenciado en Informática.
Patrón de Diseño Brigde ( Handle/Body) Calderón Márquez Jorge Alberto Posgrado de Ciencia e Ingeniería en Computación. Tecnología Orientada a Objetos.
Programación Orientada a Objetos: CLASES Y OBJETOS
En el presente trabajo, se explica los diferentes elementos que nos ofrece Microsoft Access, para hacer mas fácil y rápido la realización de bases de.
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Patrones de Diseño: Command Oscar Sanz Merino Nicolas Moreno Ishii Alex Cuervo Faucha

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Introducción. Command es un patrón de comportamiento. Tambien conocido como Action, Transaction. Especifica una forma simple de separar la ejecución de un comando del entorno que generó dicho comando.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Intención Permite solicitar una operación a un objeto sin conocer el contenido ni el receptor real de la misma. Encapsula un mensaje como un objeto, lo que permite gestionar: colas o registros de mensajes. el deshacer las operaciones realizadas. Ofrece una interfaz común que aporta: uniformidad al invocar las acciones. sencillez al extender el sistema con nuevas acciones.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Motivación. El concepto de orden (command) es ambiguo y complejo pero está muy extendido. Podemos mencionar como ejemplos: intérpretes de órdenes del sistema operativo. lenguajes de macros de paquetes ofimáticos. gestores de bases de datos. protocolos de servidores de Internet. El patrón presenta una forma sencilla y versátil de implementar un sistema basado en comandos: facilidad de uso y ampliación.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Aplicaciones Se suele aplicar cuando se quiere: Facilitar la parametrización de las acciones a realizar. Independizar el momento de petición del de ejecución. Implementar CallBacks. El parámetro de una orden puede ser otra orden a ejecutar. Soportar o permitir el "deshacer". Desarrollar sistemas utilizando órdenes de alto nivel que se construyen con operaciones sencillas (primitivas).

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Estructura del patrón Command:

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Participantes Orden: (“Command”) declara una interfaz para ejecutar una operación. Orden Concreta: (“ConcreteCommand”) define un enlace entre un objeto “Receiver” y una acción. implementa “Execute” invocando la(s) correspondiente(s) operación(es) del “Receiver”. Cliente: (“Client”) crea un objeto “ConcreteCommand” y establece su receptor.

Participantes Invocador: (“Invoker”) le pide a la orden que ejecute la petición. Receptor: (“Receiver”) sabe como llevar a cabo las operaciones asociadas a una petición. Cualquier clase puede hacer actuar como “Receiver”.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Colaboraciones El cliente crea un objeto “ConcreteCommand” y especifica su receptor. Un objeto “Invoker” almacena el objeto “ConcreteCommand” El invocador envia una petición llamando a “Execute” sobre la orden. Cuando las ordenes se pueden deshacer: “ConcreteCommand” guarda el estado para deshacer la orden antes de llamar a “Execute”. El objeto “ConcreteCommand”, invoca operaciones de su receptor para llevar a cabo la petición.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Consecuencias Orden desacoplada: El objeto que invoca la operación de aquél que sabe como realizarla. Las órdenes son objeto de primera clase. Manipulados y extendidos de forma natural. Se pueden ensamblar órdenes en una orden compuesta. Es una instancia del patrón “Composite”. Facilidad de adición de nuevas órdenes. ¿Por que es debido esto? no hace falta cambiar las clases existentes.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Implementación Debemos tener en cuenta: ¿Como deberia ser de inteligente una orden? (ampl. conj. habilidades) Implementandolo todo ella misma, sin delegar nada en el receptor. Se define un enlace entre un receptor y las acciones que lleva a cabo la orden. Permitir deshacer y repetir. Evitar la acumulación de errores en el proceso de deshacer: A medida que se ejecutan y deshacen las órdenes repetidamente. El estado de la aplicación finalmente puede diferir de sus valores originales Uso de plantillas en un LP (Ejemplo: C++) Para evitar crear una subclase de Orden para cada clase de acción y receptor.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Código de ejemplo Ejemplo en Java: public interface Command{ void execute(); } public class CommandGenerarNominas implements Command{ Universidad _universidad; public CommandGenerarNominas(Universidad universidad){ _universidad = universidad; public void execute(){ _universidad.generarNominas();

Código de ejemplo (cont.) Ejemplo en Java: public class MenuUniversidad { public boolean menuPrincipal(){ ... case 3: // generar nominas // _universidad.generarNominas(); Command comando; comando = new CommandGenerarNominas(_universidad); comando.execute(); break; }

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Usos conocidos Las clases Button y MenuItem de Java: Facilitan la utilización de este patrón. Declaran los métodos getActionCommand y setActionCommand para dar nombres a las acciones realizadas por los objetos. Facilitan una correspondencia entre ambos.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Índice Introducción. Intención. Motivación. Aplicabilidad. Estructura. Participantes. Colaboraciones. Consecuencias. Implementación. Código de ejemplo. Usos conocidos. Patrones relacionados.

Patrones relacionados Factory Method: Ofrece una forma alternativa de llamar a los órdenes además del uso del command manager. Intérprete: Se puede implementar un pequeño Intérprete mediante clases Command. Template Method: Sirve para implementar la lógica de “Deshacer” de forma automática. Composite y Prototype: Permite realizar agrupaciones de órdenes de forma similar a una macro. Hay quien lo utiliza para implementar la copia de la orden al histórico de órdenes.