Chain of Responsibility

Slides:



Advertisements
Apresentações semelhantes
SISTEMAS DISTRIBUÍDOS BASEADOS EM COORDENAÇÃO
Advertisements

Projeto – Parte II - Exemplos de Diagrama de Colaboração
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
PADRÃO CHAIN OF RESPONSIBILITY
Programação em Java Prof. Maurício Braga
PADRÕES DE PROJETO..
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
Unified Modeling Language (UML) - Modelação da Arquitectura -
Chain of Responsibility
Design Patterns Builder Pattern
Elisabeth Suescún Leandra Mara da Silva
Padrão Bridge (Handle/Body)
Elizabeth Suescún Monsalve
1 Builder Padrões de projeto Projeto de Sistemas de Software Aleksander Bruno Gadelha Setembro, 2008.
Projeto de Sistemas de Software
Diagramas de Seqüência
Chain of Responsibility
Padrões de Projeto Prototype.
Juliana França Santos Aquino
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos: Encapsulamento e Classificação
Interação Cliente Servidor
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
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 - Strategy.
Padrões GoF - Façade.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Padrões GoF – Factory Method
Sincronização de Processos (5)
Sincronização de Processos (6) - Troca de Mensagens -
1 MAC 413/5715 – Seminário Prof. Fabio Kon Self: The Power of Simplicity David Ungar and Randall B. Smith OOPSLA 1987 Cristina Fang Eduardo Miyoshi Kasa.
Classes e objetos P. O. O. Prof. Grace.
Padrão de Projeto Chain of Responsability e Template Method
TENSÕES E CORRENTES EM CIRCUITOS TRIFÁSICOS BALANCEADOS Sistemas de potência são alimentados por geradores trifásicos. De maneira ideal, os geradores suprem.
Padrão de Projeto Builder
Sistemas Distribuídos
Diagramas de Seqüência
JAVA: Conceitos Iniciais
Nazareno Andrade (baseado no material de Hyggo Almeida)
Padrões de projeto detalhados Factory Method, Abstract Factory
Singleton e Adapter Professor: Nazareno Andrade
Chain of Responsibility
Linguagens Orientadas a Objeto
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
GEJAVA IV SCJA – Certificação Sun java associado exame cx
Tópicos de Sistemas de Informação A
Design Patterns Bridge
Ritornello Um Framework para Representação de Conhecimento Musical
Tipos Abstratos de Dados
PROGRAMAÇÃO - INTRODUÇÃO George Gomes Cabral. DECOMPOSIÇÃO Dividir para conquistar: Paradigma básico para tratamento de grandes problemas. Nossa meta.
Programação Orientada à Objetos
Capítulo 7: Deadlocks.
UML - Unified Modeling Language
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
1 Padrões de Software Padrões GoF (Parte 2) Eduardo Bezerra Outubro/2005.
Padrões de Interação com o Usuário
Padrões de Projeto Abstract Factory.
XML Namespaces XML Namespaces provê um método para evitar conflito de nomes de elementos.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
1 Padrões: Bridge (p. 151) Objetivo: separar uma abstração de sua implementação Sinônimos: Handle/Body.
1 Design Patterns Israel Rios. 2 Origens A idéia de padrões de projeto não teve origem na ciência da computação Christopher Alexander A Pattern Language:
Jobson Ronan Padrões GoF Jobson Ronan
Módulo II Capítulo 1: Orientação a Objetos
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
Padrão Bridge Projeto de Sistemas de Software(PSS) Marcio D. M. Santos.
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
Padrões Criacionais Abstraem o processo de criação de instâncias (objetos), oferecendo flexibilidade no que é criado, por quem, como e quando.
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Chain of Responsibility

Chain of Responsibility Definição: padrão cuja função principal é evitar o acoplamento de um objeto remetente com o seu objeto receptor. Solução: Dar a mais de um objeto a chance de manipular a mensagem (requisição). Encadear os objetos receptores e passar a mensagem ao longo da cadeia, até que um dos objetos da cadeia seja capaz de responder à mensagem.

Estrutura do Chain of Responsibility

Chain of Responsibility - Participantes Handler define uma interface para manipulação de requisições (opcional) implementa a ligação entre os receptores ConcreteHandler Manipula requisições pelas quais é responsável Pode fazer accesso ao seu sucessor Se ConcreteHandler pode manipular a requisição, ele o faz; senão, ele repassa a requisição para seu sucessor Client Inicia a requisição a um objeto ConcreteHandler da cadeia

Chain of Responsibility - Exemplo Correspondências no exemplo do DoFactory: Handler   (Approver) ConcreteHandler   (Director, VicePresident, President) Client   (ChainApp)

Prototype

Prototype É utilizado para criar diversas cópias de um mesmo objeto. Útil quando a criação de um objeto a partir do zero é muito cara computacionalmente falando. Em vez de criar novas instâncias, crie cópias de instâncias pré-existentes (protótipos) e modifique essas cópias, conforme a necessidade. O protótipo criado é um clone do objeto original.

Estrutura do Prototype

Prototype - participantes Declara uma interace para clonar a si próprio ConcretePrototype implementa uma operação para clonar a si próprio. Essa operação retorna um objeto da mesma classe e com os mesmos valores de atributos to objeto protótipo utilizado. Client Cria um novo objeto através do envio de uma a requisição a um protótipo para clonar a si próprio.

Bridge

Bridge O padrão Bridge permite desacoplar uma abstração de sua implementação, de tal forma que as duas possa variar independentemente uma da outra. Entenda abstração como uma interface. Note que em linguagens como Java, uma classe que implemente uma interface fica acoplada a essa interface (A implements B). O padrão Bridge permite eliminar essa restrição.

Estrutura do Bridge

Bridge (Participantes) Abstraction Define a interface da abstração. Mantém uma referência para um objetos to tipo Implementor. RefinedAbstraction estende a interface definida por Abstraction. Implementor Define a interface para classes que implementam a abstração. Esta interface não precisa corresponder à interface de Abstraction; in fact the two interfaces can be quite different. Tipicamente, a interface Implementation fornece somente operações básicas, e Abstraction define operações de alto nível baseadas nessas primitivas. ConcreteImplementor Implementa a interface Implementor e define sua implementação concreta.

Builder

Builder O padrão Builder separa a construção de um objeto complexo da sua representação de tal forma que o mesmo processo de construção possa criar diferentes representações. Esse padrão é motivado pelo desejo de variar a representação interna do produto que ele constrói e, ao mesmo tempo, esconder detalhes acerca de como o produto é montado. O cliente instrui o objeto builder sobre como criar o objeto a então solicita o resultado da criação. GOF: “is intended to decouple the process of building a complex object from the parts that make up the object”

Builder - estrutura

Builder - participantes O padrão Builder tem dois participantes principais, Director e Builder. O objeto Director, responsável pela organização geral do objeto Product, faz chamadas ao Builder. O Builder constrói o objeto complexo, chamado de Product, sob o controle do objeto Director.

Builder - aplicabilidade O padrão Builder pode ser aplicado em situações em que alguma coisa (o produto) é formada (criada, construída) a partir de partes menores. O padrão criacional Builder permite que se varie a estrutura interna de um produto, assim como a maneira como esse produto é montado. The Builder creational pattern lets you vary a product's internal structure, as well as how it gets assembled. Because you construct the object through an abstract interface, you can define a new kind of builder for a product to assemble it from different structures. The client need not know anything about the construction process, nor the parts that make up a product. You get a high degree of control in the construction process.

Builder (exemplo livro GoF) Leitor para documentos RTF que exporta para vários formatos. Programa que converte RTF em outros formatos. Consiste de um Leitor/Parser e de um Conversor Dá suporte a diferentes conversões e formatos. Objetivos: Deve ser possível adicionar um novo formato facilmente. Separar o conversor do Leitor/Parser Deve ser possível reutilizar o algoritmo do Leitor/Parser O verdadeiro problema é que a quantidade de conversões em pontencial é ilimitado. É desejável a possibilidade de adicionar uma nova conversão sem modificar o leitor.

Builder (exemplo livro GoF) Cada classe conversora é chamada um BUILDER e a classe leitora é o DIRECTOR. O padrão Builder separa o algoritmo para tratar um determinado formato de como um arquivo convertido é criado e representado.