1. Foren
  2. Kommentare
  3. Applikationen
  4. Alle Kommentare zum Artikel
  5. › Java 15: Sealed Classes - Code…

Der code smell beginnt beim instanceof…

  1. Thema

Neues Thema Ansicht wechseln


  1. Der code smell beginnt beim instanceof…

    Autor: finzi 19.09.20 - 11:45

    Bin ich der einzige, dem es bei dem im Artikel angeführten Beispiel kalt den Rücken runterläuft? In meiner Erfahrungswelt deutet in objektorientiertem Code beinahe jegliche Verwendung von instanceof auf ein massives Defizit der Architektur hin – im Besonderen in switch-artigen Konstrukten.
    Im konkreten Fall würde man wohl der jedem Tier eine print-Methode geben wollen, die dann entsprechend zu implementieren ist.

  2. Re: Der code smell beginnt beim instanceof…

    Autor: Schard 19.09.20 - 12:59

    Für den Java-Fall hast du Recht. Allerdings würde ich es nicht pauschal auf objektorientierten Code erweitern. Beim objektorientiertem Arbeiten mit stark, aber dynamisch typisierenden Sprachen, wie z.B. Python, ist instanceof manchmal hilfreich.

  3. Re: Der code smell beginnt beim instanceof…

    Autor: Lord Gamma 19.09.20 - 13:23

    Schard schrieb:
    --------------------------------------------------------------------------------
    > Für den Java-Fall hast du Recht. Allerdings würde ich es nicht pauschal auf
    > objektorientierten Code erweitern. Beim objektorientiertem Arbeiten mit
    > stark, aber dynamisch typisierenden Sprachen, wie z.B. Python, ist
    > instanceof manchmal hilfreich.

    Objektorientierter Code bedeutet in der Regel, dass Polymorphie so versteckt ist, dass man die Virtual Table nicht manuell pflegen muss.
    Siehe auch [www.youtube.com]

  4. Re: Der code smell beginnt beim instanceof…

    Autor: magslamenas 19.09.20 - 14:42

    Ich denke, das Beispiel war absichtlich stark vereinfacht gehalten. Spannender wird es wohl, wenn du aufgrund der Klasse des Objekts Aktionen ausführen möchtest, die das Objekt aufgrund der Architektur nicht kennt. Dann ist es auch deutlich von Vorteil, wenn der Compiler dich auf fehlende Optionen für neue Implementierungen des Interfaces hinweist.

  5. Re: Der code smell beginnt beim instanceof…

    Autor: BLi8819 19.09.20 - 18:43

    Wenn ich an einer Stelle eine Logik brauche, wo ich anhand des Objekttyps bestimmte Dinge ausführen möchte, dann möchte ich diese Logik nicht zwangsläufig ins Interface oder in die Vererbungsh. verschieben.

  6. Re: Der code smell beginnt beim instanceof…

    Autor: Das Osterschnabeltier 19.09.20 - 20:28

    finzi schrieb:
    --------------------------------------------------------------------------------
    > Bin ich der einzige, dem es bei dem im Artikel angeführten Beispiel kalt
    > den Rücken runterläuft? In meiner Erfahrungswelt deutet in
    > objektorientiertem Code beinahe jegliche Verwendung von instanceof auf ein
    > massives Defizit der Architektur hin – im Besonderen in
    > switch-artigen Konstrukten.
    > Im konkreten Fall würde man wohl der jedem Tier eine print-Methode geben
    > wollen, die dann entsprechend zu implementieren ist.

    Das Beispiel verstehe ich auch nicht ganz, denn dazu braucht es kein sealed *shrug*.
    Ein großer Vorteil von sealed interfaces in switches ist, dass es eine garantiert begrenzte Anzahl an möglichkeiten gibt. Und damit ähnlich wie enums auf "exhaustiveness" geprüft werden kann, wodruch ein ein "default" unnötig wird.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Polyform Kunststofftechnik GmbH & Co. Betriebs KG, Rinteln
  2. Bundeskartellamt, Bonn
  3. Deutsche Forschungsgemeinschaft e. V., Bonn
  4. Hays AG, Nürnberg

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. (u. a. Apple iPhone 11 Pro Max 256GB 6,5 Zoll Super Retina XDR OLED für 929,98€)
  2. (u. a. Seagate Expansion Portable USB-HDD 1TB für 39,99€, Crucial X8 USB-SSD für 82,99€, WD...
  3. Pastewka - Die 9. Staffel (Special Edition, 2 DVDs) für 11,67€, Blacklist - Die komplette 7...
  4. (u. a. externe Festplatten und SSDs günstiger, Beats Kopfhörer günstiger)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Radeon RX 6800 (XT) im Test: Die Rückkehr der Radeon-Ritter
Radeon RX 6800 (XT) im Test
Die Rückkehr der Radeon-Ritter

Lange hatte AMD bei Highend-Grafikkarten nichts zu melden, mit den Radeon RX 6800 (XT) kehrt die Gaming-Konkurrenz zurück.
Ein Test von Marc Sauter

  1. Radeon RX 6800 (XT) Das Unboxing als Gelegenheit
  2. Radeon RX 6000 AMD sieht sich in Benchmarks vor Nvidia
  3. Big Navi (RDNA2) Radeon RX 6900 XT holt Geforce RTX 3090 ein

Energy Robotics: Ein kopfloser Hund für 74.500 US-Dollar
Energy Robotics
Ein kopfloser Hund für 74.500 US-Dollar

Als eines der ersten deutschen Unternehmen setzt Energy Robotics den Roboterhund Spot ein. Sein Vorteil: Er ist vollautomatisch und langweilt sich nie.
Ein Bericht von Werner Pluta

  1. Kickstarter Nibble ist ein vierbeiniger Laufroboter im Mini-Format
  2. Boston Dynamics Roboterhunde scannen ein Werk von Ford
  3. Robotik Laborroboter forscht selbstständig

Pixel 4a 5G im Test: Das alternative Pixel 5 XL
Pixel 4a 5G im Test
Das alternative Pixel 5 XL

2020 gibt es kein Pixel 5 XL - oder etwa doch? Das Pixel 4a 5G ist größer als das Pixel 5, die grundlegende Hardware ist ähnlich bis gleich. Das Smartphone bietet trotz Abstrichen eine Menge.
Ein Test von Tobias Költzsch

  1. Schnelle Webseiten Google will AMP-Seiten nicht mehr bevorzugen
  2. Digitale-Dienste-Gesetz Will die EU-Kommission doch keine Konzerne zerschlagen?
  3. Google Fotos Kein unbegrenzter Fotospeicher für neue Pixel