Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGiovanna Cornelio Alterado mais de 10 anos atrás
1
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
2
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
3
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
4
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
5
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
6
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
7
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
8
Estrutura © LES/PUC-Rio
9
Estrutura © LES/PUC-Rio
10
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
11
Colaborações Cliente invoca operações de Adaptee através de uma instância de Adapter. © LES/PUC-Rio
12
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.
13
Exemplo © LES/PUC-Rio
14
Exemplo
15
Fim!!
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.