Das vorherige Beispiel zeigte die Verwendung von Standardmethoden, jedoch nicht in einem praktischen Szenario.
Die Series-Schnittstelle war weit verbreitet und viele Programme waren davon abhängig.
Es wurde festgestellt, dass mehrere Series-Implementierungen eine Methode hinzugefügt haben, die ein Array mit den nächsten n Elementen der Serie zurückgibt.
Es wurde beschlossen, die Series-Schnittstelle mit der Methode getNextArray(int n) zu verbessern, wobei n die Anzahl der abzurufenden Elemente angibt.
Vor Standardmethoden würde das Hinzufügen dieser Methode vorhandenen Code beschädigen, der sie nicht definiert hat.
Mit Standardmethoden kann die neue Methode zur Serienschnittstelle hinzugefügt werden, ohne dass es zu Problemen in vorhandenen Codes kommt.
In einigen Fällen melden Standardmethoden, die einer Schnittstelle hinzugefügt werden, bei Verwendung einen Fehler, wenn es nicht möglich ist, eine Implementierung bereitzustellen, die in allen Situationen funktioniert.
Diese Standardmethoden definieren optionalen Code.
In bestimmten Fällen kann eine Standardmethode definiert werden, die in jeder Situation funktioniert.
Die Methode getNextArray() ist ein Beispiel, da sie mit der Methode getNext() implementiert werden kann, die bereits von der Series-Schnittstelle benötigt wird.
Es ist möglich, die neue Version von Series mit der Standardmethode getNextArray() zu implementieren.
Die Standardmethode getNextArray() wird mithilfe der Methode getNext() implementiert, die bereits in der ursprünglichen Serienspezifikation vorhanden ist.
Jede Klasse, die Series implementiert, kann getNextArray() verwenden, ohne die Methode überschreiben zu müssen.
Vorhandene Codes werden durch das Hinzufügen von getNextArray() nicht ungültig gemacht.
Klassen können bei Bedarf ihre eigene Implementierung von getNextArray() bereitstellen.
Vorteile der Standardmethode:
Ermöglicht die Weiterentwicklung von Schnittstellen, ohne dass vorhandener Code ungültig wird.
Bietet optionale Funktionalität, ohne dass eine Platzhalterimplementierung erforderlich ist.
Wenn im Fall von getNextArray() eine Series-Implementierung die Methode nicht benötigt, muss sie keine Platzhalterimplementierung bereitstellen, was zu einem saubereren Code führt.
Das obige ist der detaillierte Inhalt vonEin praktischeres Beispiel einer Standardmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!