Содержание
- 2. Наблюдатель (Observer) Определяет между объектами зависимость типа один-ко-многим так, что при изменении состояния одного объекта, все
- 3. Наблюдатель class LogConsole extends Terminal{ private color = Color.BLACK; void setColor(Color c){ this.color = c; }
- 4. Наблюдатель (cont.) class MainWindow{ LogConsole logConsole = LogConsole.create(); void userAction(Action a){ if (a.getLevel() == Level.isCritical()) {
- 5. Наблюдатель (cont.) class MainWindow{ … //все поля и методы остаются IntrusionDetector id = IntrusionDetector.get(); void userAction(Action
- 6. Наблюдатель (cont.) public interface ActionObserver{ void actionHappen(Action a); } Для большей структурированности имеет смысл выделить круг
- 7. Наблюдатель (cont.) class LogConsole extends Terminal implements ActionObserver { void actionHappen(Action a){ if (a.getLevel() == Level.isCritical())
- 8. Наблюдатель (cont.) class IntrusionDetector implements ActionObserver{ public void actionHappen(Action a){ if (a.getLevel() == Level.isIntrusion()) { alarm();
- 9. Наблюдатель (cont.) class MainWindow{ ActionObserver []observers = new ActionObserver [10]; void userAction(Action a){ //обход массива for
- 10. Наблюдатель (cont.) class MainWindow{ ActionObserver []observers = new ActionObserver [10]; … public void addActionObserver(ActionObserver aa){ observers[last++]
- 11. Пример реализации наблюдателя в JDK import java.awt.event.* … List list = new List(); il = new
- 12. Наблюдатель (иллюстрация)
- 14. Скачать презентацию