Methodenverkettung und Fluent-Schnittstelle von PHP verstehen
In der objektorientierten Programmierung bieten Methodenverkettung und Fluent-Schnittstelle einen leistungsstarken Mechanismus zum Erstellen von Code ist sowohl prägnant als auch ausdrucksstark. Lassen Sie uns diese Konzepte genauer untersuchen.
Methodenverkettung
Methodenverkettung ermöglicht es Ihnen, eine Reihe von Objektmethoden nacheinander aufzurufen, ohne das Ergebnis dazwischen einer Variablen zuweisen zu müssen . Jede Methode in der Kette ändert den Zustand des Objekts und gibt dasselbe Objekt zurück, sodass Sie weiterhin Methoden verketten können.
Implementierung
Die Implementierung der Methodenverkettung in PHP ist unkompliziert. Definieren Sie eine Klasse mit Mutatormethoden (Methoden, die den Zustand des Objekts ändern), die jeweils dasselbe Objekt zurückgeben. Auf diese Weise können Sie mehrere Methoden für das zurückgegebene Objekt aufrufen.
Beispiel
Betrachten Sie das folgende Beispiel:
class FakeString { private $str = ""; function __construct() { $this->str = ""; } function addA() { $this->str .= "a"; return $this; } function addB() { $this->str .= "b"; return $this; } function getStr() { return $this->str; } } $a = new FakeString(); echo $a->addA()->addB()->getStr(); // Outputs "ab"
In diesem Beispiel Die FakeString-Klasse verfügt über drei Methoden: addA(), addB() und getStr(). Die Methoden addA() und addB() hängen die Buchstaben „a“ bzw. „b“ an die Zeichenfolge an und geben dasselbe Objekt zurück. Dadurch können wir die Methoden addA() und addB() verketten, bevor wir schließlich getStr() aufrufen, um die resultierende Zeichenfolge abzurufen.
Fluent Interface
Eine Fluent-Schnittstelle ist eine Programmiermuster, bei dem Methodenverkettung verwendet wird, um eine DSL (domänenspezifische Sprache) innerhalb des objektorientierten Codes zu erstellen. Ziel ist es, den Code durch die Spiegelung natürlicher Sprachmuster lesbarer und intuitiver zu machen.
Das obige ist der detaillierte Inhalt vonWie erstellt Methodenverkettung eine flüssige Schnittstelle in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!