jaireltonPJ 1 de dez. de 2006
Você pode usar o design pattern "Observer", é baseado nesse padrão que são implementados os Listeners do AWT/Swing:
Veja um exemplo:
public interface Observador & # 123 ;
public void notificar & # 40 ; Observavel obs & # 41 ;;
& # 125 ;
public interface Observavel & # 123 ;
public void addObservador & # 40 ; Observador obs & # 41 ;;
& # 125 ;
public class Classe1 implements Observavel & # 123 ;
private List & lt ; Observador & gt ; observadores = new ArrayList & lt ; Observador & gt ; & # 40 ; & # 41 ;;
public int resultado = 0 ;
public void somar & # 40 ; int a , int b & # 41 ; & # 123 ;
resultado = a + b ;
notificarObservadores & # 40 ; & # 41 ;;
& # 125 ;
public void addObservador & # 40 ; Observador obs & # 41 ; & # 123 ;
observadores . add & # 40 ; obs & # 41 ;;
& # 125 ;
public void notificarObservadores & # 40 ; & # 41 ; & # 123 ;
for & # 40 ; Observador obs & # 58 ; observadores & # 41 ; & # 123 ;
obs . notificar & # 40 ; this & # 41 ;;
& # 125 ;
& # 125 ;
& # 125 ;
public class Classe2 & # 123 ;
private Classe1 c1 = new Classe1 & # 40 ; & # 41 ;;
public Classe2 & # 40 ; & # 41 ; & # 123 ;
Observador obs = new Observador & # 40 ; & # 41 ; & # 123 ;
public void notificar & # 40 ; Observavel o & # 41 ; & # 123 ;
mostrarResultado & # 40 ; & # 41 ;;
& # 125 ;
& # 125 ;;
c1 . addObservador & # 40 ; obs & # 41 ;;
& # 125 ;
public void mostrarResultado & # 40 ; & # 41 ; & # 123 ;
System . out . println & # 40 ; c1 . resultado & # 41 ;;
& # 125 ;
& # 125 ;
Pra facilitar já existem as classe Observador e Observavel implementadas na API do Java SE:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Observable.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Observer.html
Sobre o padrão:
http://en.wikipedia.org/wiki/Observer_pattern