/
V.S.Femit
/
Lab1
Обзор
Документация
Войти
/
V.S.Femit
/
Lab1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/com/example/lab1/TimeServer.java
69 строк
2 KB
V.S.Femit
upload files
02 фев 2026, 11:19
Верифицирован
02 фев 2026, 11:19
44f5903
Код
Авторство
О чём код?
package com.example.lab1; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; public class TimeServer implements Subject { private List<IObserver> observers = new ArrayList<IObserver>(); private int timeState = 0; private Timer timer; private TimerTask task; private final int delay = 0; private final int period = 1000; // 1 секунда public TimeServer() { // Конструктор без автоматического запуска } public void start() { if (timer != null) return; this.timer = new Timer(); task = new TimerTask() { public void run() { tick(); } }; timer.schedule(task, delay, period); } public void stop() { if (timer != null) { timer.cancel(); timer = null; } } private void tick() { timeState++; notifyAllObserver(); } @Override public void notifyAllObserver() { for (IObserver observer : observers) { observer.update(this); } } @Override public void attach(IObserver observer) { observers.add(observer); } @Override public void detach(IObserver observer) { observers.remove(observer); } public int getState() { return timeState; } public void setState(int time) { this.timeState = time; notifyAllObserver(); } }