dedlfix: Sinn Interfaces?

Beitrag lesen

Tach!

Man muss als Entwickler schon die Klasse genau anschauen und wissen das es ein Interface IHaustier gibt mit der Funktion getName.
Weil rein aus dem Code hier sieht man ja nicht das es in der Klasse ein Interface gibt.

Das Interface allein nützt dir nicht viel. Du brauchst auch Anwendungen, die sich darauf berufen. Bei PHP kannst du ja einer Funktion/Methode einen beliebigen Typ als Parameter übergeben. Das heißt, mit genügend Eigendisziplin übergibst du an der Stelle nur Objekte, die die Methode getName() haben und greifst in der Funktion darauf zu. Dann brauchst du auch kein Interface. Das wird erst dann wirklich interessant, wenn du mit Type Hinting die Menge der übergebbaren Dinge auf einen einzigen Typ einschränkst - in dem Fall auf dieses Interface.

Alternativ kannst du auch ohne Interface das Vorhandensein der Methode getName() prüfen. Mit Interface kannst du diese Prüfung weglassen, weil PHP beim Aufruf das Argument prüft.

dedlfix.