Spec-Zone .ru
спецификации, руководства, описания, API
Содержание | Предыдущий | Следующий | Индекс

21.7 Класс java.util.Observable

Каждый экземпляр класса Observable поддерживает ряд "наблюдателей", которые уведомляются всякий раз, когда Observable возразите изменениям некоторым существенным способом. Наблюдатель может быть любым объектом, который реализует интерфейс Observer (§21.8).

Отметьте, что этот механизм уведомления, не имеет никакого отношения к потокам (§20.20) и является абсолютно отдельным от wait и notify механизм класса Object (§20.1).

public class Observable {
	public void addObserver(Observer o);
	public void deleteObserver(Observer o);
	public void deleteObservers();
	public int countObservers();
	public void notifyObservers();
	public void notifyObservers(Object arg);
	protected void setChanged();
	protected void clearChanged();
	public boolean hasChanged();
}
Когда заметный объект недавно создается, его группа наблюдателей пуста.

Двух наблюдателей считают тем же самым если и только если equals метод (§20.1.3) возвраты true для них.

21.7.1 public void addObserver(Observer o)

Наблюдатель o добавляется к этому Observable группа объекта наблюдателей, при условии, что это не то же самое как некоторый наблюдатель уже в наборе.

21.7.2 public void deleteObserver(Observer o)

Наблюдатель o удаляется из этого Observable группа объекта наблюдателей.

21.7.3 public void deleteObservers()

Все наблюдатели удаляются из этого Observable группа объекта наблюдателей.

21.7.4 public int countObservers()

Число наблюдателей в этом Observable группа объекта наблюдателей возвращается.

21.7.5 public void notifyObservers()

Если это Observable объект был отмечен как изменено, этот метод заставляет всех наблюдателей быть уведомленными с null как второй параметр; другими словами этот метод эквивалентен:

notifyObservers(null)

21.7.6 public void notifyObservers(Object arg)

Если это Observable объект был отмечен как изменено (§21.7.9), этот метод заставляет всех наблюдателей быть уведомленными с arg как второй параметр. Наблюдатель уведомляется, вызывая update метод (§21.8.1) на двух параметрах: это Observable объект и arg. Метка на этом объекте тогда очищается (§21.7.8).

21.7.7 protected void setChanged()

Это Observable объект отмечается как измененный; hasChanged метод теперь возвратится true.

21.7.8 protected void clearChanged()

Это Observable объект отмечается как то, чтобы не быть измененным; hasChanged метод теперь возвратится false.

21.7.9 public boolean hasChanged()

Результатом является истина если и только если setChanged метод вызвали для этого Observable возразите позже чем любой clearChanged метод или notifyObservers метод.

21.8 Интерфейс java.util.Observer

Класс должен реализовать Observer взаимодействуйте через интерфейс, если это должно быть уведомлено всякий раз, когда Observable объект был изменен. См. Observable класс (§21.7) для обсуждения как Observer объекты уведомляются.

public interface Observer {
	public void update(Observable o, Object arg);
}

21.8.1 public void update(Observable o, Object arg)

Когда Observable объект был изменен и notifyObservers метод (§21.7.6) вызывают, каждый Observer объект в его наборе observers уведомляется, вызывая update метод, передавая это два параметра: Observable возразите и другой параметр, определенный звонком notifyObservers метод.


Содержание | Предыдущий | Следующий | Индекс

Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com

free hit counter