| (Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI... |
Diskussion: PHP 5 und Interfaces im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige heyho ich hab einfach mal ne simple frage, ich versteh in etwa wie das mit den interfaces funktioniert, mein ...
![]() |
| | #1 (permalink) |
| Member of Honour ![]() | Anzeige heyho ich hab einfach mal ne simple frage, ich versteh in etwa wie das mit den interfaces funktioniert, mein problem ist vielmehr, wozu braucht man das? mir wird aus dem codebeispiel kein sinvoller hintergrund dafür klar. bin hier darauf gestoßen: http://professionelle-softwareentwic...nterfaces.html
__________________ » Flattr mich! - Wenn dir mein Beitrag geholfen hat! « <| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |> |
| | |
| | #2 (permalink) | |
| Senior Member Registriert seit: 03.09.05 ![]() Likes: 0 | Zitat:
Hätte man die Interfaces nun nicht, hätte man mangels Mehrfachvererbung in diesem Fall keine andere Möglichkeit als den genauen Typ jeden Objekts zu ermitteln, es zu casten und könnte dann erst entsaften aufrufen. (Ich gehe mal davon aus, dass PHP-Interfaces in etwa den Java-Interfaces gleichen, was mir nach Lektüre des verlinkten Textes auch der Fall zu sein scheint.) | |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | |
| Member of Honour ![]() | Zitat:
| |
| | |
| | #4 (permalink) |
| Member of Honour ![]() | aber diese fall tritt ja an sich gar nicht ein, wenn ich nur mit meinen eingenen klassen arbeite? ist das nicht nur relevant, wenn ich fremdcode verwende?
__________________ » Flattr mich! - Wenn dir mein Beitrag geholfen hat! « <| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |> |
| | |
| | #5 (permalink) |
| Senior Member Registriert seit: 03.09.05 ![]() Likes: 0 | Nicht wirklich. Hier mal ein (sehr konstruiertes) Beispiel: Du willst ein Zeichenprogramm schreiben(vergessen wir erstmal, dass es um PHP geht). Dies soll verschiedene geometrische Objekte darstellen können wie Kreise, Polygone, etc.. Alle diese Objekte sollen darstellbar sein, implementieren also eine Methode draw(). Diese Eigenschaft fasst du nun in dem Interface Drawable zusammen. Nun willst du alle angelegten Objekte in einer Liste verwalten. Zur Darstellung willst du diese Liste durchgehen und jeweils draw() aufrufen. Dank Interfaces ginge soetwas: (Pseudocode: ) Code: Drawable[] objs = ...;
objs.add(new Circle(...));
objs.add(new Rectangle(...));
objs.add(new Triangle(..));
...
for(i in objs)
i.draw(); Das ist nur ein einfaches Beispiel für die Verwendung von Interfaces, es gibt noch mehr Situationen in denen sowas sinnvoll wird. |
| | |
| | #6 (permalink) |
| Member of Honour ![]() | aber genau sowas ähnliches habe ich in php bis dato immer mit der funktion is_callable umgesetzt, einfach vorher geprüft und dann gecasted oder eben nen fehler ausgegeben.
__________________ » Flattr mich! - Wenn dir mein Beitrag geholfen hat! « <| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |> |
| | |
| | #7 (permalink) |
| Senior Member Registriert seit: 03.09.05 ![]() Likes: 0 | Nun, mit Interfaces ist sowas weitaus sauberer und weniger fehleranfällig. Vorallem kann der Compiler somit besser nachvollziehen, ob dein Code in Hinblick auf die Typen gültig ist, und somit werden derartige Prüfungen zur Laufzeit unnötig. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| programme auf bestimmte interfaces beschränken | public | Linux/UNIX | 5 | 06.05.09 23:00 |