Häufig verwendete Designmuster – Chain-of-Responsibility-Muster und seine PHP-Implementierung

伊谢尔伦
Freigeben: 2023-03-02 18:26:01
Original
1181 Leute haben es durchsucht

Das Verantwortungskettenmodell ist ein Verhaltensmodell, das einige Befehlsobjekte und eine Reihe von Verarbeitungsobjekten enthält. Jedes Handler-Objekt bestimmt, welche Befehlsobjekte es verarbeiten kann, und es weiß auch, wie Befehlsobjekte, die es nicht verarbeiten kann, an das nächste Handler-Objekt in der Kette übergeben werden. Das Muster beschreibt auch Methoden zum Hinzufügen neuer Verarbeitungsobjekte am Ende der Verarbeitungskette.

Hauptrolle

Abstrakte Verantwortungsrolle: Definiert die öffentlichen Methoden, die von allen Verantwortlichkeiten unterstützt werden.

Konkrete Verantwortungsrolle: Konkrete Verantwortung, implementiert durch abstrakte Verantwortungsschnittstelle

Kette der Verantwortungsrolle: Legen Sie die Aufrufregeln der Verantwortung fest

Klassenbild

Häufig verwendete Designmuster – Chain-of-Responsibility-Muster und seine PHP-Implementierung

Beispiel

<?php
abstract class Responsibility { // 抽象责任角色
    protected $next; // 下一个责任角色
 
    public function setNext(Responsibility $l) {
        $this->next = $l;
        return $this;
    }
    abstract public function operate(); // 操作方法
}
 
class ResponsibilityA extends Responsibility {
    public function __construct() {}
    public function operate(){
        if (false == is_null($this->next)) {
            $this->next->operate();
        }
    };
}
class ResponsibilityB extends Responsibility {
    public function __construct() {}
    public function operate(){
        if (false == is_null($this->next)) {
            $this->next->operate();
        }
    };
}
 
$res_a = new ResponsibilityA();
$res_b = new ResponsibilityB();
$res_a->setNext($res_b);
?>
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!