Cuándo debemos usar Observer y Observable
Un entrevistador me preguntó:
¿Qué es Observer
y Observable
y cuando debemos usar?
No estaba al tanto de estos términos, así que cuando volví a casa y empecé a buscar en Google Observer
y Observable
y encontré algunos puntos de diferentes recursos:
1)
Observable
es una clase yObserver
es una interfaz.2)
Observable
clase mantener una lista de Observadores.3) Cuando se actualiza un objeto observable, invoca el método
update()
de cada uno de sus Observadores para notificar que, se cambia.
Encontré este ejemplo:
import java.util.Observable;
import java.util.Observer;
class MessageBoard extends Observable
{
public void changeMessage(String message)
{
setChanged();
notifyObservers(message);
}
}
class Student implements Observer
{
@Override
public void update(Observable o, Object arg)
{
System.out.println("Message board changed: " + arg);
}
}
public class MessageBoardTest
{
public static void main(String[] args)
{
MessageBoard board = new MessageBoard();
Student bob = new Student();
Student joe = new Student();
board.addObserver(bob);
board.addObserver(joe);
board.changeMessage("More Homework!");
}
}
Pero no entiendo por qué necesitamos Observer
y Observable
? ¿Para qué sirven los métodos setChanged()
y notifyObservers(message)
?
Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32
Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52