A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Projeto de Sistemas de Software(PSS) Baldoino F. dos S. Neto"— Transcrição da apresentação:

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!!


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

Apresentações semelhantes


Anúncios Google