Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
return hour * 3600000 + min * 60000 + sec * 1000 + ms;
}
}
Результатом будет:
java.util.SimpleTimeZone[id=Europe/Moscow,offset=10800000,dst Savings=3600000,useDaylight=true,startYear=0,startMode=2,start Month=2,startDay=-1 ,startDayOfWeek=1 ,startTime=7200000, startTimeMode=0,endMode=2,endMonth=9,endDay=-1, endDayOfWeek=1,endTime=10800000, endTimeMode=0]
Интерфейс Observer и класс Observable
Интерфейс Observable определяет всего один метол-update (Observable о, Object arg), который вызывается, когда обозреваемый объект изменяется.
Класс Observer предназначен для поддержки обозреваемого объекта в парадигме MVC (model-view-controller), которая, как и другие проектные решения и шаблоны, описана в специальной литературе. Этот класс до-1" жен быть унаследован, если возникает необходимость в том, чтобы отеле живать состояние какого-либо объекта. Обозреваемый объект моЖеТ цметь несколько обозревателей. Соответственно, они должны реализовать интерфейс Observable.
После того, как в состоянии обозреваемого объекта что-то меняется, необходимо вызвать метод notifyObservers, который, в свою очередь, вызывает методы update у каждого обозревателя.
Порядок, в котором вызываются методы update обозревателей, заранее не определен. Реализация по умолчанию подразумевает их вызов в порядке регистрации. Регистрация осуществляется с помощью метода addObserver(Observer о). Удаление обозревателя из списка выполняется с помощью deleteObserver(Observer о). Перед вызовом notifyObservers необходимо вызвать метод setChanged, который устанавливает признак того, что обозреваемый объект был изменен.
Рассмотрим пример организации взаимодействия классов:
public class TestObservable extends java.util.Observable { private String name = ""; public TestObservable(String name) { this.name = name;
}
public void modifyO { setChanged();
}
public String getName() { return name;
}
}
public class TestObserver implements java.util.Observer { private String name = "";
public TestObserver(String name) { this.name = name;
}
public void updateQava.util.Observable o,Object arg) { String str = "Called update of" + name; str += " from " + ((TestObservable)o).getName(); str += " with argument" + (String)arg; System.out.println(str);