Sobes.tech
Junior — Middle

Դուք կիրառե՞լ եք 'Դիտորդ' դիզայնի օրինակը ձեր նախագծերում։

sobes.tech AI

Պատասխան 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();

Այս մոտեցումը օգնում է առանձնացնել վիճակի փոփոխության տրամաբանությունը այդ փոփոխություններին արձագանքելու տրամաբանությունից, ինչը բարելավում է կոդի ընդլայնելիությունը և սպասարկումը։