Interclass Kommunikation, wie macht ihr das?

  • 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!

  • 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

  • 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!

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

    (pseudocode)

    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.

  • 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!

  • 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.

  • 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!

  • 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)

Jetzt mitmachen!

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