Bridge

Pessoal, eu li alguns tutoriais sobre o metodo bridge que preciso implementar para a facudade (Sem ter a explicacao do professor), mas eu não entendi, tem como alguem me explicar bem calmamente, pq sou novato em java e principalmente em padroes de projeto.

Veja isso:

http://www.java2s.com/Code/Java/Design-Pattern/BridgePattern1.htm

Basicamente

[code] //Create an appropriate implementer object
MessageLogger logger = new FileLogger();

//Choose required interface object and
// configure it with the implementer object
Message msg = new EncryptedMessage(logger);

msg.log("Test Message");[/code]

Nesse exemplo Message é uma interface. EncryptedMessage é uma ponte (bridge) para o logger setado através do construtor.

Nesse exemplo, EncryptedMessage apenas encripta a mensagem, esse objeto não sabe como fazer o “log” da mesma, para isso precisa do MessageLogger. Se vc não quer escrever em um arquivo e sim no banco de dados, por exemplo, bastaria criar outro logger que a bridge funcionaria do mesmo jeito.

Nesse caso a implementação é inserida na bridge através do construtor mas vc pode usar um setter, como aqui:

http://www.java2s.com/Code/Java/Design-Pattern/BridgePatterninJava3.htm

Mas basicamente é isso,

Amigo, eu estava estudando os seus links, e utilizei o bluej para visualizar a uml deles, bem, me bateu umas dúvidas.

No caso da bridge, a ponte sempre é entre interfaces, ou pode ocorrer com classes também, pois eu tenho um trabalho de aula sobre ele, e o trabalho é o seguinte.

Recebemos um jogo que um rapaz fez semestre passado, e bem, tenho que inserir o bridge nesse código formado.

Poderíamos fazer o seguinte, e tento fazer daqui e jogo minhas dúvidas. assim sei la, vc me dava uma força, se não for pedir demais, não quero que faça para mim, só quero orientação.

Outro exemplo de ponte é o que acontece com o JDBC.

Exemplo tirado da apostila fj21 da Caelum:

Daí você tem os drivers JDBC de cada banco, que implementam a interface JDBC e os protocolos do banco.