1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Interclass Kommunikation, wie macht ihr das?

  • davewood
  • 11. November 2005 um 09:08
  • Unerledigt
  • davewood
    17
    davewood
    Mitglied
    Reaktionen
    9
    Punkte
    3.204
    Beiträge
    536
    • 11. November 2005 um 09:08
    • #1

    Wenn Ihr mehrere Klassen habt, die in einer Baumstruktur zueinander stehen, also ganz oben eine Klasse die dann andere Klassen als Member hat und diese evt wieder andere Klassen als Member haben. Wie macht Ihr dann die Kommunikation zw diesen Klassen, insbesondere von unten nach oben und zwischen "Geschwistern"?

    mfG david

    I like Toast!

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 11. November 2005 um 10:45
    • #2

    Schreib mal ein Beispiel. So allgemein kann man das kaum sagen. Kommt eben drauf an.

    btw: Auf Members (meinst du Datenfelder?) von Members zugreifen ist in den meisten Fällen keine gute Idee, da dann die Klassen sehr stark gekoppelt sind.

    Dipper dipper dii dipper dii dipper dii duuu

  • davewood
    17
    davewood
    Mitglied
    Reaktionen
    9
    Punkte
    3.204
    Beiträge
    536
    • 11. November 2005 um 11:45
    • #3

    Nein ich meine den aufruf von public methods

    zB

    Code
    class Main
       -class Service
       -class Window
    
    
    class Service
       -Database

    sorry mir sind nur saudaemliche namen eingefallen aber geht auch so.

    Fall 1: Database will eine Methode von Window aufrufen
    Fall 2: Service will eine Methode von Window aufrufen

    wie tuts ihr da?

    mfg

    david

    I like Toast!

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 11. November 2005 um 20:11
    • #4

    Du kannst eine referenz von Main an die Klassen Service und Database weitergeben.

    (pseudocode)

    Code
    class Main
    
    
     service = new Service(this) 
     window = new Window(this)
    
    
    end
    
    
    ....
    
    
    class Service
    
    
     database= new Database(this) 
    
    
     def foo
       database.service.main.window.window_foo
     end
    
    
    end
    Alles anzeigen

    wenn die instanz von service von aussen zugaenglich ist, kannst du ueber die main referenz darauf zugreifen.

    Du machst die beiden klassen halt somit voneinander abhaengig.

    lg, Benjamin Ferrari, bookworm.at

  • davewood
    17
    davewood
    Mitglied
    Reaktionen
    9
    Punkte
    3.204
    Beiträge
    536
    • 11. November 2005 um 21:36
    • #5

    du meinst dass ich den pointer durchreihe bis nach unten, genau das will ich aber nicht machen, dann hab ich den pointer immer in den konstruktoren drinnen und das is ned sonderlich schön.

    gibts da nichts eleganteres?

    david

    I like Toast!

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 11. November 2005 um 21:53
    • #6

    Es gibt andere moeglichkeiten, aber die sind nicht unbedingt eleganter. Wenn du aus Main z.b. ein Singleton machst, kannst du dir das durchreichen der referenz spaaren. Ob das Sinn macht haengt aber natuerlich von der applikation ab.

    die einzelnen komponenten deiner software sollten ja eigentlich nur durch klahr definierte schnittstellen miteinander kommunizieren. Und wenn du in Service die Main Komponente brauchst, dann waehre eine referenz im Konstruktor so eine Schnittstelle.

    lg, Benjamin Ferrari, bookworm.at

  • davewood
    17
    davewood
    Mitglied
    Reaktionen
    9
    Punkte
    3.204
    Beiträge
    536
    • 11. November 2005 um 23:00
    • #7

    ich hoffe immer noch dass es da ein besseres konzept gibt das ich einfach noch nicht kenne. fuer 90% kann ich das wxWidgets eventsystem verwenden aber in 2 faellen stosse ich an die grenzen des systems und kann die kommunikation nicht ermoeglichen.

    andernfalls bleibt mir vermutlich nix anderes uebrig als die referenz durchzuschleifen.. finds nur bloed ne referenz ueber 2+ Ebenen zu reichen wenn die dazwischenliegenden ebenen nichts von diesem objekt brauchen.

    david

    I like Toast!

  • MichiK
    9
    MichiK
    Mitglied
    Reaktionen
    1
    Punkte
    786
    Beiträge
    153
    • 13. November 2005 um 00:55
    • #8

    So zyklische Abhängigkeiten sollte man auf jeden Fall vermeiden, sonst gibt irgendwann einen riesigen Wurschtel.
    Ich löse solche Dinge gern durch "Listener" (programmiere viel Java)

    MfG, Michael

    Informatik @ TU Wien (1998 - 2005)

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern