segunda-feira, 27 de fevereiro de 2012

Pattern: Decorator

Um pattern que eu achei muito útil, é o pattern Decorator, com ele podemos adicionar funcionalidades a uma classe sem que ela sofra alguma mudança, ou necessite criar sub-classes.

http://java.dzone.com/articles/design-patterns-decorator


Explicação: Padrão estrutural, no qual você pode adicionar comportamentos e funcionalidades dinamicamente.

Exemplo: Podemos ter vários tipos de emails, no qual dependendo do lugar, podemos enviar sem criptografia ou com criptografia. Adicionando funcionalidade de criptografia no nosso email sem alterar a classe email, pode ser feita com o uso de um decorador. Que no nosso caso, o decorador é EmailCriptografado. A criação do decorator pode ser feita de várias formas, eu simplifiquei um pouco.

 
public interface EmailInterface { 
 public String conteudo();
}

public class Email implements EmailInterface{
 @Override
 public String conteudo() {
  return "";
 }
}


A classe decorator recebe em seu construtor o objeto que se deseja decorar.
 
public class EmailCriptografado implements EmailInterface{
 private EmailInterface email;
 public EmailCriptografado(EmailInterface email){
  this.email = email;
 }
 @Override
 public String conteudo() {
  return email.conteudo();
 }
 public String conteudoCriptografado(){
  String conteudo = email.conteudo();
  //logica para criptografar o email
  return conteudo;
 }
}

Obrigado

Nenhum comentário:

Postar um comentário