Tach!
welchen Nutzen hat es Interzeptormethoden außer
__construct()
in einem Framework zuverwenden?
Ob Nutzen oder nicht hängt vom Anwendungsfall ab. Eine pauschale Antwort darauf wird dich wohl eher nicht wesentlich erhellen.
Es verwundert mich, weil ja eine Klasse in einer gute konzipierte Klassenstruktur in einem Framework weis was sie machen soll.
Und sie soll sich dabei auf ihre eigentliche Arbeit konzentrieren. Bei C# nennt man die Dinger Attribute. Solche verwendet man zum Beispiel bei ASP.NET MVC, um den Controller oder dessen Attribute mit Angaben zur Berechtigung zu versehen. Es kann nicht Aufgabe des Controllers sein, erst zu seinem Aufruf festzustellen, dass der Anwender die Funktionalität gar nicht ausführen darf. Und vor allem, dass da nicht ständig derselbe Prüf-Code in die Actions kopiert werden muss. Deshalb annotiert man den Controller oder einzelne Actions mit Attributen, die angeben, wer zugreifen darf. Der Router, der den passenden Controller nebst Action heraussucht, kann nun anhand dieser Meta-Angaben in den Attributen herausfinden, ob der aktuelle Anwender berechtigt ist, und kann dann den Aufruf durchführen oder ablehnen.
Weitere Anwendungen sind zum Beispiel im Entity Framework zu finden. Zu deinen Datenklassen werden Metainformationen benötigt, wie Label-Text beim Anzeigen, welche Validatoren verwendet werden sollen oder auch welcher konkrete Datentyp im DBMS auf eine bestimmte Eigenschaft deiner Datenklasse gemapt werden soll. Nicht immer ist es eindeutig wie bei string vs. varchar. Die Datenklasse bleibt in sich selbst sauber, aber die Verwendern können aus den Attributen die Metainformationen entnehmen.
dedlfix.