Design Patterns
Observer x Bridge
Nome do Aluno
Novo Hamburgo, Brasil email@aluno.com.br Design patterns (Padrões de projeto) são soluções de templates abstratas de alto nível. Pense nelas como um “blueprint” (desenho técnico ou documentação de uma arquitetura, etc.) para soluções e não como uma solução por si própria. Você não achará um framework que você poderá simplesmente aplicar para a sua aplicação; ao invés disso, você chegará ao design patterns através da refatoração do seu código e generalização do seu problema.[1]
Observer: Imagine a situação de um mercado, onde tem vários caixas, e um painel informando o número do próximo caixa disponível. Uma forma de fazer isto, é cada caixa, quando disponível informa ao painel o seu número, e o painel se encarrega de exibí-lo.
Resumindo, o padrão consiste em atribuir aos objetos que tem seus estados alterados a tarefa de notificar os objetos interessados nessas mudanças de estados.
Exemplo JAVA de uso de Observer:
public interface AcaoObserver { void notificaAlteracao(Acao acao);
}
public class Painel implements AcaoObserver{ public void notificaAlteracao(Acao acao){ //implementação do que fazer quando “observamos” um evento //que estamos aguardando }
}
import java.util.*; public class Acao { private double valor; private Set interessados = new HashSet (); public void registraInteressado(AcaoObserver interessado) { this.interessados.add(interessado); }
public void cancelaInteresse(AcaoObserver interessado) { this.interessados.remove(interessado); }
public double getValor() { return this.valor; } public void setValor(double valor) { this.valor = valor; for(AcaoObserver interessado : this.interessados) { interessado.notificaAlteracao(this); } }
}
Bridge
[2]Bridge é um padrão de projeto de