Whouzuo: Stein-Schere-Papier-Echse-Spock in OOP

Beitrag lesen

Das Stichwort lautet "Multiple Dispatch", die Klassen an sich sind erstmal nicht so besonders wichtig. Siehe auch http://en.wikipedia.org/wiki/Multiple_dispatch. Das Beispiel dort mit den Raumschiffen und Asteroiden lässt sich gut auf die Karten übertragen.

Also ich habs jetzt auf englisch und deutsch gelesen und verstehe es immer noch nicht. Kann mir das jemand (mit Bienchen und Blümchen) erklären?

Tja, das Design von Anwendungen ist eben nicht trivial. Hier unterscheidet sich der erfahrene Entwickler (ich bin keiner) vom indischen Standardprogrammierer. (SCNR)
Spaß beiseite: es geht darum, dass eine Methode nicht mehr zwangsläufig zu einem einzelnen Objekt gehört, sondern dass es Methoden gibt, die auf zwei Objekten operieren und bei denen die Reihenfolge egal ist. Ob du "meinstring".equals("deinstring") oder meinObjekt.equals(deinObjekt) schreibst, beeinflusst (fachlich gesehen) das Ergebnis nicht. Daher ergibt es keinen Sinn, wenn der Methodenaufruf von equals für _ein_ Objekt definiert ist - er sollte generell auf zwei (oder ggf. sogar mehr) Objekten operieren - entscheidend ist dann nur die Anzahl und der Typ der Objekte.
Damit vermeidet man z.B. Redundanzen und muss nachher nicht bei zwei verschiedenen Typen Code ändern, sondern nur noch an einer Stelle.
Wenn die Sprache das nicht explizit ermöglicht, dann muss man es "nachbauen".

0 55

Stein-Schere-Papier-Echse-Spock in OOP

Matthias Apsel
  • programmiertechnik
  1. 0
    Whouzuo
    1. 0
      T-Rex
      1. 0
        Whouzuo
  2. 0
    T-Rex
    1. 0

      Stein-Schere-Papier-Echse-Spock

      Auge
      • menschelei
  3. 0
    M.
  4. 0
    Encoder
    1. 0
      Matthias Apsel
      1. 0
        Encoder
        1. 0
          Matthias Apsel
          1. 0
            Whouzuo
            1. 0
              Matthias Apsel
              1. 0
                Whouzuo
        2. 0
          Matthias Apsel
  5. 0
    T-Rex
    1. 0
      Whouzuo
      1. 0
        Encoder
        1. 0
          Whouzuo
          1. 0
            Encoder
            1. 0
              Whouzuo
              1. 0
                Encoder
                1. 0
                  Matthias Apsel
                2. 0
                  Whouzuo
                  1. 0
                    Matthias Apsel
                    1. 0
                      Whouzuo
                    2. 0
                      Whouzuo
                      1. 0
                        Matthias Apsel
      2. 0
        Matthias Apsel
        1. 0
          Whouzuo
          1. 0
            Matthias Apsel
            1. 0
              Whouzuo
              1. 0
                Matthias Apsel
                1. 0
                  Whouzuo
                  1. 0
                    Matthias Apsel
              2. 0
                dedlfix
                1. 0
                  dedlfix
                2. 0
                  Whouzuo
      3. 0
        T-Rex
    2. 0
      T-Rex
      1. 0
        Matthias Apsel
  6. 3
    Der-Dennis
    1. 3
      Der-Dennis
      1. 0
        Whouzuo
        1. 0
          Der-Dennis
          1. 0
            Whouzuo
            1. 0
              Der-Dennis
          2. 0

            Stein-Schere-Papier-Echse-Spock in OOP (Teil 2)

            Whouzuo
            1. 0
              Der-Dennis
              • menschelei
    2. 0
      Matthias Apsel
      1. 0
        Der-Dennis
        1. 0
          bubble
          1. 0
            Der-Dennis
        2. 0
          Matthias Apsel
        3. 0
          Matthias Apsel