SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 28.10.2009, 17:25:52
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 54
Beiträge: 1.044
Verständnisproblem zu Interface

Ich habe da ein kleines Problem den Sinn bzw. die korrekte Benutzung von einem bzw. mehreren Intrefaces zu verstehen.

Wie sie erzeugt, implementiert werden etc. ist mir klar und kann man ja auch überall nachlesen. Irgendwo glaube ich gelesen zu haben, daß man ein Interface als Schnittstelle benutzt.

Zur Zeit hänge ich an dieser Stelle fest: Interface Grundlagen

Kann mir einer hier einmal ein ganz einfaches Beispiel zeigen wie sowas funktioniert? Also die dort genannten Beispiele sind mir schon klar und verständlich. Nur von einer Art Schnittstelle ist für mich dort nichts zu erkennen.

Der einleitende Satz
Zitat:
Interfaces erlauben die Erzeugung von Code, der spezifiziert, welche Methoden eine Klasse implementieren muss, ohne definieren zu müssen, wie diese Methoden behandelt werden.
läßt mich leider am Sinn zweifeln.
Expliziet wohl eher die Aussage "der spezifiziert, welche Methoden eine Klasse implementieren muss,". Für mich klingt das eher etwas nach einer Art Funktionsbeschreibung.

Geändert von urvater (28.10.2009 um 17:27:33 Uhr) Grund: Frage um Aussage ergänzt
Mit Zitat antworten
  #2  
Alt 28.10.2009, 20:52:16
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Verständnisproblem zu Interface

aaalso. Bei einem interface werden ja lediglich (public) methoden definiert, also die methoden, die bei einer klasse "von außen" aufgerufen werden können. es werden aber nicht die methoden-körper definiert.

eine klasse, die ein interface implementiert, muss alle methoden, die im interface definiert werden, implementieren (einzige ausnahmen sind abstrakte klassen m.e.).

das ganze nützt nur enig, da man in php keine typen kennt so wie z.B. in java. wenn ich in java einen vogel und einen fisch habe, dann kann ich ein interface Tier definieren:

Interface Tier {
function gibLaut();
}

jedes tier in meiner welt implementiert nun dieses interface:

class Fisch implements Tier {

function gibLaut(){

return "blubb";

}

}

und der Vogel gibt eben "Zwitscher" zurück.

Und jetzt kommen die Schnittstellen ins Spiel. Wenn ich nun eine Liste von Objekten habe, die allesamt Tiere sind, dann weiß ich dass diese Tiere in jedem fall die methode gibLaut() implementiert haben. Tier beschreibt also die methoden, mit denen ich auf Klassen, die Tier implementieren zugreifen kann.

Wenn jetzt noah auf seiner arche sitzt und eine liste mit Tieren hat, müsste der in Java die Typen für die Objekte der liste mit angeben. und obwohl alle objekte einen anderen typ haben (nämlich z.b. vogel oder fisch), haben sie alle das interface Tier implementiert, sind also vom "Supertyp" Tier. Die liste in java sähe dann so aus:

List<Tier> arche = new LinkedList<Tier>();

und könnte fische, vögel, säugetiere usw enthalten.

in php dagegen kann man beim übergeben eines objektes überprüfen, ob das objekt ein gewisses interface implementiert hat und sich dann sicher sein, die darin implementierten methoden aufrufen zu können.
Mit Zitat antworten
  #3  
Alt 28.10.2009, 20:58:19
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 46
Beiträge: 1.938
AW: Verständnisproblem zu Interface

Zitat:
Zitat von urvater Beitrag anzeigen
Irgendwo glaube ich gelesen zu haben, daß man ein Interface als Schnittstelle benutzt.
korrekt - da man so die kommunikation zwischen klassen über (im interface notierte) methoden beschreiben kann. ein gutes beispiel findet sich hier.

Zitat:
Zitat von urvater Beitrag anzeigen
Ich habe da ein kleines Problem den Sinn bzw. die korrekte Benutzung von einem bzw. mehreren Intrefaces zu verstehen.
möglicherweise erwartest du ganz einfach zu viel von einem interface - es soll leute geben, die die dinger für überflüssig halten und lieber auf eine abstrakte klasse zurück greifen, da man mehr machen kann.

eine klasse, die ein (oder mehrere) interface(s) einbindet, muss alle methoden implementieren, die im jeweiligen interface notiert sind. wie die methode arbeitet, interessiert dabei allerdings nicht - hauptsache, die methode taucht in der klasse auf und besitzt dieselbe signatur.

das (verkürzte) beispiel aus dem php-manual:

PHP-Code:
<?php

interface iTemplate
{
    public function 
setVariable$name$var );
    public function 
getHtml$template );
}

class 
BadTemplate implements iTemplate
{

    public function 
setVariable$name$var )
    {
        
// was hier passiert, ist hinsichtl. des interfaces völlig egal
    
}

}

?>
der code produziert einen fatal error, da die klasse BadTemplate nicht alle methoden implementiert, die im interface notiert sind.

cx
Mit Zitat antworten
  #4  
Alt 28.10.2009, 21:36:20
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 54
Beiträge: 1.044
AW: Verständnisproblem zu Interface

Ok, ich glaub jetzt so langsam den Faden dazu gefunden zu haben. Wenn ich richtig für micht persönlich liege, dann kann ich dieses Thema erst einmal weglassen und mich in andere weiter vertiefen.

Ich danke euch alle für die "einfachere" Beschreibung eines Interface und für den Link.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular - Verständnisproblem fabi_80 PHP Grundlagen 1 05.05.2009 17:06:43
Verständnisproblem Dateierzeugung in php Weide PHP Grundlagen 1 06.04.2009 19:25:58
kleines Verständnisproblem mit regulären Ausdrücken bweichel PHP Grundlagen 1 16.11.2007 19:24:52
MP3 Interface ansteuern?! Dani_CH Off Topic Area 2 10.02.2007 13:58:39
XML auslesen Verständnisproblem docbrown PHP Grundlagen 0 25.06.2006 23:16:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:01:29 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.


© 2001-2023 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt