¿Cuándo debemos usar Observador y Observable?

Un entrevistador me preguntó:

Que esObserver yObservable ¿Y cuándo debemos usarlos?

No estaba al tanto de estos términos, así que cuando volví a casa y empecé a buscar en GoogleObserver yObservable, Encontré algunos puntos de diferentes recursos:

1)Observable es una clase yObserver es una interfaz

2) ElObservable clase mantiene una lista deObservers.

3) Cuando unObservable objeto se actualiza, invoca elupdate() método de cada uno de susObservers para notificar eso, 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é necesitamosObserver yObservable? Que son lossetChanged() ynotifyObservers(message) métodos para?

Respuestas a la pregunta(10)

Su respuesta a la pregunta