Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Carlos Roberto Marques Junior
Padrão de Projeto Iterator
Projeto de Sistemas de Software
Elisabeth Suescún Leandra Mara da Silva
Projeto de Sistemas de Software Kelly Leal 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 Hazel, Juliana e Luana
Projeto de Sistemas de Software Fernando de Freitas Silva
Projeto de Sistemas de Software
Projeto de Sistemas de Software Fernando de Freitas Silva
Padrão de Projeto Memento
Projeto de Sistemas de Software Sérgio Luiz Ruivace Cerqueira
UML: Diagrama de Classes
Carlos R. M. Junior Eduardo Motta
Strategy Projeto de Sistemas de Software
Padrões de Projeto Mediator.
Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena.
Padrões de Projeto Prototype.
Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena.
Padrões de Projeto Adapter.
Metodologias Equipe do Curso de ES para SMA
Projeto de Sistemas de Software (PSS)
Abstract Factory – Gustavo Lopes Mourad.
Kleinner Farias e Raphael do Vale
Padrão de Projeto Composite
Template Method Projeto de Sistemas de Software. © LES/PUC-Rio Template Method Motivação.
Projeto de Sistemas de Software Leandra Mara da Silva
Padrão Abstract Factory
Modelagem Orientada a Objetos
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Adapter.
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Introdução ao paradigma de programação: Orientado a Objetos
Geração de Código.
MANUTENÇÃO DE SOFTWARE
Polimorfismo em C#.
Diagramas de Colaboração e Componentes
Padrões de projeto detalhados Factory Method, Abstract Factory
Singleton e Adapter Professor: Nazareno Andrade
Projeto de Sistemas de Software(PSS)
Chain of Responsibility
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Desenvolvimento Rápido de Aplicação (RAD)
Programação Orientada à Objetos
Programação Orientada a Objetos - Java
UML: Diagrama de Classes
Projeto Orientado aos Objetos Prof. Wolley W. Silva
PROGRAMAÇÃO ORIENTADA A OBJETOS
POO II JEAN CARLO MENDES
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Padrões de Projeto Abstract Factory.
ABC reuso Reengenharia Primeiras conclusões. ABC reuso Análise do Código Fonte Arquitetura em Camadas Fachada (SIAlocacaoPlus) Negócio (Cadastros) Persistência.
Projetando Objetos com Responsabilidades
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.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Padrão Composite Definição
Frameworks e Componentes Daniel Fernando Pavelec.
Jobson Ronan Padrões GoF Jobson Ronan
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Aula 5 – Padrão Decorator
Padrões de Projeto Aula 9 – Padrão Adapter.
Design Patterns Mediator Projeto de Sistemas de Software Kelly Leal.
Catalysis Engenharia de Software Douglas Gabriel Bernardes Matheus Zure Pablo.
Testes de Unidade. 2 Pauta Testes de Unidade; Testes de Unidade; Desenvolvimento orientado a testes; Desenvolvimento orientado a testes; Testes unitários.
Padrões de Projeto Aula 5 – Padrão Decorator 1. QuickReview: Observer Definição: Quando usar? Tipo de padrão? Como? 2.
Padrões de Projeto Aula 12 – Padrão Adapter. PADRÃO ADAPTER Soluções simples para problemas reais! 2.
Jean Carlo mendes
Transcrição da apresentação:

Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto Padrão Adapter Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto

Propósito “Converte a interface de uma classe em outra interface, esperada pelos clientes. O Adapter permite que classes com interfaces imcompatíveis trabalhem em conjunto – o que, de outra forma, seria impossível” © LES/PUC-Rio

Interfaces compatíveis Motivação Suponha que você tem um sistema que usa o componente A Interfaces compatíveis Seu sistema Componente A © LES/PUC-Rio

Motivação Porém o fornecedor do componente A faliu… Você precisa utilizar o componente de outro fornecedor Seu sistema Componente A © LES/PUC-Rio

Interfaces incompatíveis Motivação Porém, o fornecedor do componente B oferece uma interface incompatível com o seu sistema Interfaces incompatíveis Seu sistema Componente B © LES/PUC-Rio

Interfaces compatíveis Interfaces compatíveis Motivação Para não correr riscos, você cria um adaptador Interfaces compatíveis Interfaces compatíveis Seu sistema Adaptador Componente B Sem alteração de código Código novo Sem alteração de código © LES/PUC-Rio

Aplicabilidade Utilizamos quando: Desejamos utilizar uma classe existente e sua interface não combina com o que precisamos; Desejamos criar uma classe reutilizável que coopere com classes que apresentam interfaces incompatíveis. © LES/PUC-Rio

Estrutura © LES/PUC-Rio

Estrutura © LES/PUC-Rio

Participantes Target Client Adaptee Adapter Define a interface específica do domínio que o cliente utiliza. Client Interage com objetos de acordo com a interface Target. Adaptee Define uma interface existente que precisa ser adaptada. Adapter Adapta a interface de Adaptee para Target © LES/PUC-Rio

Colaborações Cliente invoca operações de Adaptee através de uma instância de Adapter. © LES/PUC-Rio

Conseqüências Class Adapter Object Adapter Permite que Adapter substitua algum comportamento de Adaptee, uma vez que Adapter é uma subclasse de Adaptee; Adapta Adaptee para Target através do uso efetivo de uma classe Adaptee concreta. Em conseqüência, um adaptador de classe não funcionará quando quisermos adaptar uma classe e todas as suas subclasses. Object Adapter Permite que um único Adapter trabalhe com vários Adaptee. Logo, Adapter pode acrescentar funcionalidade a todos os Adaptee de uma só vez; Torna mais difícil redefinir um comportamento de Adaptee. Ele exigirá a criação de subclasses de Adaptee e fará com que Adapter referencie a subclasse ao invés de Adaptee em si.

Exemplo © LES/PUC-Rio

Exemplo

Fim!!