Sobes.tech
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ą.