Junior — Middle
Czy stosowałeś wzorzec 'Obserwator' w swoich projektach?
sobes.tech AI
Odpowiedź od AI
Tak, wzorzec "Obserwator" był stosowany w projektach PHP do implementacji modelu opartego na zdarzeniach, w którym jeden obiekt (obiekt) powiadamia wiele innych obiektów (obserwatorów) o zmianach swojego stanu.
Przykład użycia w 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() {
// Zmiana stanu
$this->notify('Stan zmieniony');
}
}
class ConcreteObserver implements Observer {
public function update(string $eventData) {
echo "Otrzymano powiadomienie: $eventData\n";
}
}
$subject = new Subject();
$observer = new ConcreteObserver();
$subject->attach($observer);
$subject->changeState();
Takie podejście pomaga oddzielić logikę zmiany stanu od reakcji na te zmiany, poprawiając skalowalność i utrzymanie kodu.