PADRÃO COMMAND João Paulo Paschoal Arnaldo Correia Eric Carvalho.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos Baseados em Objetos
Advertisements

Introdução a Algoritmos
PADRÃO CHAIN OF RESPONSIBILITY
Carlos Roberto Marques Junior
Requisitos de Software
Entrada e Saída Introdução.
Diagrama de Classes.
Modo Gráfico x Modo Texto
Elisabeth Suescún Leandra Mara da Silva
Padrão Bridge (Handle/Body)
Elizabeth Suescún Monsalve
Carlos R. M. Junior Eduardo Motta
Chain of Responsibility
Padrões de Projeto Prototype.
Metodologias Equipe do Curso de ES para SMA
Projeto de Sistemas de Software Leandra Mara da Silva
SERIALIZER Equipe: Aderly Stresser Borges Carlos Magno Nunes.
O Processo de construção de conhecimento matemático e o fazer didático
Cartões CRC (Class Responsibility Card)
Projeto de Software Orientado a Objetos
Módulo III Padrões GOF: Command
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Padrões GoF - Façade.
1 Command. 2 Definição: encapsula uma requisição como um objeto, permitindo a parametrização de clientes com diferentes requisições. RemetenteReceptor.
Padrões GoF – Factory Method
Chain of Responsibility
CAPÍTULO Equações dinâmicas de um robô
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
Padrões para Atribuições de Responsabilidades
DIAGRAMA DE COMPONENTES
Diagrama de Componentes
Projeto de Sistemas de Software
Expansão dos Casos de Uso
Tópicos de Sistemas de Informação A
Integração com Banco de Dados
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Controle de concorrência
Programação Orientada à Objetos
Aula 11 Programação Orientada a Eventos
Aplicações Web com Orientação a Objetos
Retaguarda - Autorizar Programas para Usuários
Técnicas de Replicação
1 Padrões de Software Padrões GoF (Parte 2) Eduardo Bezerra Outubro/2005.
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Trabalho Final de Padrões de Projeto
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Trabalho de Persistência para o EPOS. Problema Proposto Implementar no Epos objetos persistentes, ou seja, fazer com que o sistema, ao ser reiniciado,
Padrões de Projeto Abstract Factory.
1 Design Fest - Fries Right Um Sistema de Controle de Processamento de Batatas Fritas Distribuído Grupo: Adolfo Neto Marcel Simonette Paulo Salem.
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
Expansão dos Casos de Uso
Diagramas de Colaboração entre Objetos Motivação.
Jobson Ronan Padrões GoF Jobson Ronan
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Engenharia de Software
Retaguarda - Autorizar programas para usuários 1 IdentificaçãoRET_003 Data Revisão29/08/2013.
Autorizar programas para usuários
Projeto de Banco de Dados
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
FACULDADE CAMBURY Sistemas Operacionais Profª Adriana Vettorazzo.
Sistemas Operacionais IV – Gerenciamento de E/S
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
Diagrama de atividade.
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Padrões de Projeto Aula 10 – Padrão Façade.
Java Módulo II Projeto Final.
 Trabalho realizado por:  Francisco de Assis Marinho Lanza;  Simone Martins Rodrigues;  Tânia Moraes Nascimento da Fonseca.
Padrões de Projeto Aula 15 – Padrão Command. PADRÃO COMMAND Encapsulando a chamada de métodos com o padrão Command. 2.
Transcrição da apresentação:

PADRÃO COMMAND João Paulo Paschoal Arnaldo Correia Eric Carvalho

DEFINIÇÃO "Encapsular uma requisição como um objeto, permitindo que clientes parametrizem diferentes requisições, filas ou requisições de log, e suportar operações reversíveis." [GoF]

OBJETIVO Encapsular solicitações em um objeto e utilizar suas ações sem conhecer sua implementação; Possibilitar operações de fazer e desfazer; Geração de logs;

MOTIVAÇÃO Algumas vezes é necessário solicitar uma operação sem nenhum conhecimento de como esta será implementada; Podemos simplesmente não conhecer o objeto que vai receber a delegação  para executar aquela operação;

MOTIVAÇÃO Imagine a situação de um item de menu: "colar" (Ctrl + V); Ele não sabe a natureza da informação que está na Área de Transferência; Pode ser uma Imagem, um Texto, etc.

MOTIVAÇÃO Solução: encapsular esta tarefa num objeto (um Command) e através dele delegar esta tarefa para outra classe, que por sua vez sabe como executar a operação propriamente dita (o Receiver);

DIAGRAMA DE SEQUÊNCIA  

CONSEQUÊNCIAS Promove o desacoplamento do objeto que solicita uma operação do objeto que vai realizar esta operação propriamente dita; Solicitações em alto nível: o objeto não precisa ter nenhum conhecimento sobre a implementação da operação;

CONSEQUÊNCIAS Encapsulamento do Comando em um Objeto, podendo portanto serem manipulados e refinados como tal;

DIAGRAMA DE CLASSE

PARTICIPANTES Command: Interface para execução de uma operação; ConcreteCommand: Vincula um objeto Receiver a uma ação e implementa os métodos abstratos da classe Command; Client: Cria um objeto ConcreteCommand e estabelece o seu Receiver;

PARTICIPANTES Invoker: Envia solicitações ao Command; Receiver: Implementa as ações que serão utilizadas pelo ConcreteCommand;

EXEMPLO REAL Observe o exemplo real: Trata-se de um “simulador” de carro de Formula 1; Um Piloto pode executar as ações “acionarPedal” e “mudarMarcha”; O Carro faz o papel do Invoker, gerenciando as ações do piloto;

EXEMPLO REAL Para as ações “acionarPedal” existem dois comandos: AcelerarCommand, e FreiarCommand; Para as ações de “mudarMarcha” existem dois comandos: SubirMarcha, e DescerMarcha;

EXEMPLO REAL  

EXEMPLO REAL Piloto (Client)  

EXEMPLO REAL Carro (Invoker)

Carro (Invoker) continuação… EXEMPLO REAL Carro (Invoker) continuação…

AcelerarCommand (Concrete Command) EXEMPLO REAL AcelerarCommand (Concrete Command)

DescerMarchaCommand (Concrete Command) EXEMPLO REAL DescerMarchaCommand (Concrete Command)

EXEMPLO REAL Rodas (Receiver)

EXEMPLO REAL Cambio (Receiver)

Main (Dentro de Piloto) EXEMPLO REAL Main (Dentro de Piloto)

EXEMPLO REAL Saída do Main

APLICAÇÕES Realizar operações de fazer e desfazer; Realizar operações de log; Reduzir acoplamento entre requisição e execução de uma operação; Projetar um sistema baseado em operações de alto nível, como operações de transações; 

PRÁTICA CALCULADORA Esta atividade simula uma calculadora com duas operações possíveis: Multiplicação ou MultiplicaçãoPorSoma .     A calculadora envia comandos diferentes de acordo com a operação selecionada, encapsulando as solicitações como objeto.   Com base no exemplo demonstrado, e nas classes parcialmente fornecidas, implemente o  que falta para o funcionamento da calculadora.