Назад к вопросам
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();
Такой подход помогает отделить логику изменения состояния от реакции на эти изменения, улучшая расширяемость и поддержку кода.