Padrões Comportamentais Preocupam-se com algoritmos e a atribuição de responsabilidades entre objetos. Descrevem padrões de comunicação entre os objetos.

Slides:



Advertisements
Apresentações semelhantes
Prof. Maria Augusta Vieira Nelson PUC Minas Prof. Torsten Paul Nelson
Advertisements

PADRÃO CHAIN OF RESPONSIBILITY
Padrão de Projeto Iterator
PADRÕES DE PROJETO..
Design Patterns Patrícia Mateus nº3343 Carla Guerreiro nº3157
Chain of Responsibility
Design Patterns Builder Pattern
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Elizabeth Suescún Monsalve
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software
Chain of Responsibility
Projeto de Sistemas de Software
Padrão de Projeto Iterator
Padrões de Projeto para Software Orientado a Objetos
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.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Chain of Responsibility
Padrões - introdução O que é um padrão?
RUP: Fluxo de Análise e Projeto
Observer Mantendo seus objetos atualizados
Contratos Modelagem Funcional.
Padrão de Projeto Chain of Responsability e Template Method
Professor: Hyggo Almeida
Fundamentos da Engenharia de Software
Módulo III Padrões GOF Professores
Projeto de Sistemas de Software
Chain of Responsibility
Padrões de Projeto Aplicações empresariais são complexas
Padrão de Projeto Iterator
Estudo de Caso: um editor de documentos
Padrões de Projeto.
Introdução Padrões de Projeto
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Padrões de Design Toacy Cavalcante de Oliveira. 2 April 20, 2015 Problema.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Iterator Professores Eduardo Bezerra –
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Observer Professores Eduardo Bezerra –
1 Padrão: Iterador (Iterator) Tipo - “Object behavioral” Objetivo - acessar um agregado sem expor a representação Outros nomes - Cursor.
1 Padrões: Composite (p. 163) Objetivo: compor objetos em estruturas de árvores para representar relações de parte/todo. “Composite” permite tratar objetos.
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:
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF-II: Iterator e Composite Professores Eduardo Bezerra –
Detalhamento dos Padrões - Estrutura
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
Usando “Casos de Uso”. Ator Define um papel que o usuário terá quando interagir com o sistema. Uma entidade, tal como um outro sistema ou um banco de.
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 Estruturais Tratam de compor classes e objetos para formar estruturas grandes e complexas.
Delegação  É uma maneira de tornar a composição tão poderosa para fins de reutilização como a herança. Na delegação, dois objetos são envolvidos no tratamento.
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
GoF Patterns Roni Fabio Banaszewski UTFPR – Universidade Tecnológica Federal do Paraná.
1 Introdução aos Padrões de Projetos (na prática) Créditos: Lúbia Vinhas Hazel Carvalho Crato Adaptações: Prof. Nécio de Lima Veras.
GRASP: Projeto de Objetos com Responsabilidade. 2 Pauta Responsabilidades e métodos Responsabilidades e métodos Padrões Padrões GRASP: Padrões e princípios.
1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Métodos e Técnicas de Desenvolvimento
Programação para Internet Aula 06 Linguagem Java (Orientação a Objetos – Atributos e Métodos)
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Capítulo 5: SCRIPTS ALUNOS: CARLOS EDUARDO C. DESIDERIO / EDUARDO MATHEUS VOLANSKI JADER JEPSEN SCHMIELE / LINDOLFO.
Normalização (4FN) Na literatura aparecem outras formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN. Destas a única que tem importância na.
Padrões de Projeto Aula 14 – Padrão Abstract Factory.
1 Introdução aos Padrões de Projetos (na prática) Créditos: Adaptações: Prof. Nécio de Lima Veras.
Lógica de programação Estruturas de seleção Estruturas de repetição Sub-Rotinas 1.
Revisão de Conceitos Thiago Medeiros Barros. Algoritmos Qualquer problema de computação pode ser resolvido executando uma série de ações em uma ordem.
Padrões de Projeto Aula 15 – Padrão Command. PADRÃO COMMAND Encapsulando a chamada de métodos com o padrão Command. 2.
Comportamento Organizacional
Programação Gráfica em Java Desenho em AWT Aula 04.
Introdução a atividade acadêmica
Acadêmicas: Tamyres D.C.A. de Lima; Thaliane A. de Freitas; Vanessa Brunnquell.
Transcrição da apresentação:

Padrões Comportamentais Preocupam-se com algoritmos e a atribuição de responsabilidades entre objetos. Descrevem padrões de comunicação entre os objetos.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrões Comportamentais zDe Classe yBaseados no uso de herança yTemplate Method yInterpreter zDe Objeto yBaseados no uso de composição yChain of Responsability, Command, Mediator, Observer, Strategy, State, Visitor, Iterator, Memento

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Chain of Responsability zIntenção yEvita o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar uma solicitação. Encadeia os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate. zMotivação yHelp sensível ao contexto: O usuário pode obter ajuda em qualquer parte da interface simplesmente pressionando o botão do mouse sobre ela. A ajuda depende da parte selecionada e do seu contexto.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Chain of Responsability Estrutura do Padrão Handler HandleRequest() ConcreteHandler1 HandleRequest() ConcreteHandler2 HandleRequest() client sucessor

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Chain of Responsability Participantes zHandler yDefine uma interface para tratar solicitações. yImplementa o elo ao sucessor. zConcreteHandler yTrata de solicitações pelas quais é responsável. yPode acessar o seu sucessor. ySe o ConcreteHandler pode tratar a solicitação, ele o faz; caso contrário, ele a repassa para o seu sucessor. zClient yInicia a solicitação para um objeto ConcreteHandler da cadeia.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Chain of Responsability Aplicabilidade zUse o Padrão Chain of Responsability quando: yMais de um objeto pode tratar uma solicitação e o objeto que a tratará não é conhecido a priori. O objeto que trata a solicitação deve ser escolhido automaticamente; yVocê quer emitir uma solicitação para um dentre vários objetos, sem especificar explicitamente o receptor; yO conjunto de objetos que pode tratar uma solicitação deve ser especificado dinamicamente.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Chain of Responsability Colaborações zQuando um cliente emite uma solicitação, a mesma se propaga ao longo da cadeia até que um objeto ConcreteHandler assume a responsabilidade de tratá-la.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Chain of Responsability Conseqüências zAcoplamento reduzido entre cliente e receptor zFlexibilidade na atribuição de responsabilidades a objetos. A cadeia pode ser modificada em tempo de execução zA solicitação não é garantida de ser tratada

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Iterator zIntenção yFornecer um meio de acessar, sequencialmente, os elementos de um objeto agregado sem expor a sua representação interna. zMotivação List Count() Append(Element) Remove(Element)... ListIterator First() Next() IsDone() CurrentItem() list

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Iterator Estrutura Aggregate CreateIterator() Iterator First() Next() IsDone() CurrentItem() client ConcreteAggregate CreateIterator() Return new ConcreteIerator(this) ConcreteIterator

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Iterator Participantes zIterator yDefine uma interface para acessar e percorrer elementos. zConcreteIterator yImplementa a interface de Iterator. yMantém o controle da posição corrente no percurso do agregado. zAggregate yDefine uma interface para a criação de um objeto Iterator. zConcreteAggregate yImplementa a interface de criação do Iterator para retornar uma instância do ConcreteIterator apropriado.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Iterator Colaborações zUm ConcreteIterator mantém o controle do objeto corrente no agregado e pode computar o objeto sucessor no percurso.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Iterator Aplicabilidade zPara acessar os conteúdos de um objeto agregado sem expor a sua representação interna; zPara fornecer uma interface uniforme que percorra diferentes estruturas agregadas (iteração polimórfica).

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Observer zIntenção yDefinir uma dependência um-para-muitos entre objetos, de maneira que quando um objeto muda o seu estado todos os seus dependentes são notificados e atualizados automaticamente. zMotivação ySeparação das classes de apresentação das classes de aplicação (ex: visualizadores para C e Java de árvores sintáticas)

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Observer Estrutura ConcreteSubject GetState() SetState() subjectState Subject Attach(Observer) Dettach(Observer) Notify() return subjectState; Observer Update() For all o in observers { o.Update } ConcreteObserver Update() observerState observers subject observerState = subject.GetState;

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Observer Participantes zSubject yConhece os seus observadores. Um número qualquer de objetos Observer pode observar um subject. yFornece uma interface para acrescentar e remover objetos observers. zObserver yDefine uma interface de atualização para objetos que devem ser notificados sobre mudanças em um Subject. zConcreteSubject yArmazena estados de interesse para objetos ConcreteObserver. yEnvia uma notificação para os seus observadores quando seu estado muda.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Observer Participantes zConcreteObserver yMantém uma referência para um objeto ConcreteSubject. yArmazena estados que devem permanecer consistentes com os do Subject. yImplementa a interface de atualização de Observer, para manter seu estado consistente com o do subject.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Observer Colaborações zO ConcreteSubject notifica seus observadores sempre que ocorrer uma mudança que pode tornar inconsistente o estado deles com o seu próprio. zApós ter sido informado de uma mudança no subject concreto, um objeto ConcreteObserver pode consultar o subject para obter informações. O ConcreteObserver usa esta informação para reconciliar o seu estado com aquele do subject.

Padrões Criacionais de Design OO. Java Deployment Course. Recife, DI-UFPE, Maio de Jorge H. C. Fernandes. Padrão Observer Aplicabilidade zQuando uma abstração tem dois aspectos, um dependente do outro. Encapsulando esses aspectos em objetos separados, permite-se variá-los e reutilizá-los independentemente. zQuando uma mudança em um objeto exige mudanças em outros, e você não sabe quantos objetos necessitam ser mudados.