Hellihello dedlfix,
Manchmal ist es aber schöner, wenn man nicht $objekt->eigenschaft / $objekt->methode() notieren muss sondern direkt $objekt angeben kann. Besonders an Stellen, an denen "normale" Variablen und Objekte gemischt übergeben werden können, oder man einfach die Implementierungsdetails "verstecken" will (nicht um sie zu schützen, sondern weil man sie nicht ständig benötigt und darauf hingewiesen werden will).
Aha!
Wenn eine Klasse ein Interface implementiert, dann ist sichergestellt, dass die im Interface definierten Dinge in der implementierenden Klasse vorhanden sind. Ein Anwender kann ein ihm übergebenens Objekt auf instanceof Interfacename testen und sich dann sicher sein, dass die im Interface vereinbarten Dinge vorhanden und zugreifbar sind.
Also eben Code-Sichheit.Jein. Es ist nicht die Sicherheit, die man landläufig meint, sondern eher die Sicherstellung der Einhaltung eines Vertrages.
Jau, so meinte ich auch. Nicht die Sicherheit im Sinne von "knackbar" bzw. "hijackbar" oder "injectbar" oder so.
Nein, nicht mit PHP. Das Interface definiert, wie sein Name suggeriert, nur wie die Schnittstelle auszusehen hat.
Wenn das der Name "suggeriert", wo ist dann der "Schnitt", wo die "Stelle". Ich kapiere, was es ist, was es tut und was nicht, aber nicht, warum es so heißt. Vermutlich vermischt sich bei mir "Schnittstelle" und "Adapter".
Wenn du nach bereits vorgefertigten Dingen suchst, dann halte Ausschau nach abstrakten Klassen oder Klassen mit abstrakten Methoden. Diese haben im Allgemeinen bereits Funktionalität implementiert und müssen nur noch an den abstrakten Stellen ergänzt werden. Allerdings kann man Klassen ja nur einmal beerben.
Nein, das war jetzt eher nicht gemeint, sondern eher eben das von Dir erläuterte Grundmuster bzw. der Sinn von Implementierung und Schnittstelle allgemein.
Dank für die Erläuterungen
und Gruß,