Junior — Middle
Ar taikėte 'Stebėtojo' modelį savo projektuose?
sobes.tech AI
Atsakymas iš AI
Taip, stebėtojo (Observer) šablonas buvo naudojamas PHP projektuose įgyvendinti įvykių pagrįstą modelį, kai vienas objektas (subjektas) praneša daugeliui kitų objektų (stebėtojų) apie savo būsenos pokyčius.
Pavyzdys 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() {
// Būsenos keitimas
$this->notify('Būsena pakeista');
}
}
class ConcreteObserver implements Observer {
public function update(string $eventData) {
echo "Gauta pranešimas: $eventData\n";
}
}
$subject = new Subject();
$observer = new ConcreteObserver();
$subject->attach($observer);
$subject->changeState();
Šis požiūris padeda atskirti būsenos keitimo logiką nuo reakcijos į šiuos pokyčius, tai pagerina kodo išplėtimą ir priežiūrą.