Sobes.tech
Назад к вопросам
Junior — Middle
92

Применяли ли вы паттерн 'Наблюдатель' в своих проектах?

Компании, где спрашивали
CryptoInvestIt

Ответ от нейросети

sobes.tech AI

Да, паттерн "Наблюдатель" (Observer) применялся в проектах на PHP для реализации событийной модели, когда один объект (субъект) уведомляет множество других объектов (наблюдателей) об изменениях своего состояния.

Пример использования в PHP:

interface Observer {
    public function update(string $eventData);
}

class Subject {
    private $observers = [];

    public function attach(Observer $observer) {
        $this->observers[] = $observer;
    }

    public function notify(string $eventData) {
        foreach ($this->observers as $observer) {
            $observer->update($eventData);
        }
    }

    public function changeState() {
        // Изменение состояния
        $this->notify('Состояние изменено');
    }
}

class ConcreteObserver implements Observer {
    public function update(string $eventData) {
        echo "Получено уведомление: $eventData\n";
    }
}

$subject = new Subject();
$observer = new ConcreteObserver();
$subject->attach($observer);
$subject->changeState();

Такой подход помогает отделить логику изменения состояния от реакции на эти изменения, улучшая расширяемость и поддержку кода.