Tags: , | Categories: Padrões de Projeto Posted by Rafael on 30/12/2010 19:16 | Comentários (0)

Conversando hoje com um companheiro de equipe, percebi que um código exemplo fez falta no post anterior. Pensando nisso, desenvolvi um exemplo em C#, o qual vocês podem baixar aqui: Blog.DP.Adapter.zip (19,40 kb). Esse código de exemplo implementa o exemplo proposto no post anterior, seguindo o seguinte diagrama:

Um detalhe interessante nesse exemplo é o uso de um Factory Method, ou seja, um método que retorna a instância que se deseja. No nosso caso, uma instância da classe Adaptador12para34 é retornada, para evidenciarmos a chamada do método da classe adaptada Torneira12 (adaptee) através da interface Adaptador12para34. Abordaremos o padrão FactoryMethod em um próximo post com maiores detalhes e exemplos.

Ao executarmos o código, a seguinte mensagem é apresentada:

Note que essa mensagem encontra-se dentro do método Acoplar12(), dentro da classe Torneira12. Note também que, na classe Program que contém o método Main, associamos a instância da classe Adaptador12para34, que implementa a interface ITerminal34, retornada pelo Factory Method à variável terminal, e invocamos o método Acoplar() da instância, que, por sua vez, invoca o método Acoplar12 da classe Torneira12.

Temos assim a implementação do padrão Adapter, através da criação de uma interface (Adaptador12para34) que estabelece o acesso ao objeto implementado fora do padrão (Torneira12), para o padrão da aplicação, de forma transparente para o cliente, que no nosso exemplo é a classe Program.

Espero que esse exemplo auxilie no entendimento do padrão Adapter.

Até a próxima!

Comentários

Os comentários estão fechados