Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [JAVA] Adapterklassen und Interfaces

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54

    [JAVA] Adapterklassen und Interfaces

    das ist doch fast das fast das gleiche nur das bei dem einen noch die konkrete Methode steht ,nämlich bei den Adapterklassen, oder???

    Die Interfaces sind ja rein abstract.

    Warum nimmt man dann nicht nur Adapterklassen und überschreibt einfach die methoden die man anders benötigt??

    mfg
    Snoop

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.07.2000
    Ort
    Österreich
    Beiträge
    189
    ich weiß nicht genau was du mit adapterklasse meinst, den begiff kenne ich nur aus der gui programmierung.

    interpretiert zur allgemeinen verwendung in java:
    inferfaces haben im vergleich zur normalen vererbung den vorteil dass eine klasse auch mehrere interfaces implementieren kann, aber nur von einer erben kann.

    interpretiert auf die GUI programmierung:
    grundsätzlich ist es egal ob du eine andapterklasse oder ein interfaces verwendest. wenn du eine adapterklasse verwendest verwendest du automatisch das interface mit (da dass die atapterklasse implementiert).

    das interface hat manchmal vorteile:
    wenn du sowie alle funktionen der adapterklasse überschreiben würdest, dann kann du auch gleich das interface nehmen, und ersparst dir so eine zwischenklassen.
    wenn du in einer klasse mehrere interfaces implementieren willst, dann gibt es (wie schon gesagt) sowieso nur den weg über das interface.

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54
    ich bin hier grad dabei, verfahren der Ereignis-Programmierung und da ist ein unterpunkt Adapterklassen.

    es wird an einem Beispiel gezeigt das es einmal funktioniert via implementation und einmal über Adapterklasse:

    Implementation:

    Code:
    import ......
    
    class Modell02Ereignis implements MouseListener {
          // definitionen
           public void mouseClicked(MouseEvent e){
             // konkrete methode        
          }
           public void mouseEntered(MouseEvent e){}
           public void mouseExited(MouseEvent e){}
           public void mousePressed(MouseEvent e){}
           public void mouseReleased(MouseEvent e){}
    }


    Bei dem gleichen Beispiel nur mit Adapterklasse schauts dann so aus:

    Code:
    import ......
    
    class Modell02Ereignis extends MouseAdapter {
          // definitionen
           public void mouseClicked(MouseEvent e){
             // konkrete methode        
          }
    }

    aber das schaut doch ganz nach normaler vererbung aus und das was man spezialisieren will überschreibt man halt.

    Hier im Buch steht ausserdem als Bewertung:

    Adapterklassen können die Programmierung der Ereignis-Behandlung vereinfachen

    Adapterklassen bieten erhebliche Vorteile bei der Programmierung kleinerer Ereignis-Behandlungen im Zusammenhang mit lokalen und anonymen Klassen.


    mfg
    snoop

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    ja und? Der Hauptpunkt ist der schon erwàhnte: Eine Klasse kann mehrere Interfaces implementieren aber nur von einer Klasse abgeleitet sein.

    Das ist so bei Java - keine Mehrfachvererbung. Wenn es die gàbe (was aber eine grundlegende Design-Entscheidung ist) dann wàren interfaces total èberflèssig. So aber halt nicht.
    Da benutzt du halt meist Adapter-Klassen ausser wenn die Parent-Klasse schon was anderes sein muss.

    MfG Peschmà
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von McSnoop
    Warum nimmt man dann nicht nur Adapterklassen und überschreibt einfach die methoden die man anders benötigt??
    Wenn man zum Beispiel alle Methoden des Interface implementieren muss, denn dann bringt der Adapter nix.

    Oder wenn man sich die extra Subklasse ersparen will.

    Aber im Grunde stellt sich die Frage nicht. Der Adapter ist ja Hilfe der Implementierung, das Interface braucht das Framework ja auf jeden Fall zur Schnittstellendeklaration, sonst gäbe es ja auch keinen Adapter

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •