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();
Այս մոտեցումը օգնում է առանձնացնել վիճակի փոփոխության տրամաբանությունը այդ փոփոխություններին արձագանքելու տրամաբանությունից, ինչը բարելավում է կոդի ընդլայնելիությունը և սպասարկումը։