Sobes.tech
Back to questions
Junior — Middle
59

Как реализовывались механизмы оповещений в системе?

Companies where asked
СБЕР СтрахованиеСБЕР Страхование

Answer from AI

sobes.tech AI

В Java-системах механизмы оповещений обычно реализуются с помощью паттерна "Наблюдатель" (Observer). Это позволяет объектам подписываться на события и получать уведомления при их возникновении.

Пример простой реализации:

import java.util.ArrayList;
import java.util.List;

interface Observer {
    void update(String message);
}

class Subject {
    private List<Observer> observers = new ArrayList<>();

    void addObserver(Observer observer) {
        observers.add(observer);
    }

    void notifyObservers(String message) {
        for (Observer o : observers) {
            o.update(message);
        }
    }
}

class ConcreteObserver implements Observer {
    private String name;

    ConcreteObserver(String name) {
        this.name = name;
    }

    @Override
    public void update(String message) {
        System.out.println(name + " получил оповещение: " + message);
    }
}

public class NotificationExample {
    public static void main(String[] args) {
        Subject subject = new Subject();
        subject.addObserver(new ConcreteObserver("Observer1"));
        subject.addObserver(new ConcreteObserver("Observer2"));

        subject.notifyObservers("Событие произошло!");
    }
}

В более сложных системах могут использоваться специализированные библиотеки и фреймворки (например, Spring Events, JMS, Kafka) для асинхронных и распределённых оповещений.