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. GKV-Spitzenverband, Berlin
  2. operational services GmbH & Co. KG, Frankfurt am Main
  3. über duerenhoff GmbH, Raum Berlin
  4. Hays AG, Lörrach

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 7,77€
  2. 20,49€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Boeing 737 Max: Neustart mit Hindernissen
Boeing 737 Max
Neustart mit Hindernissen

Die Boeing 737 ist nach dem Flugzeugabsturz in Indonesien wieder in den Schlagzeilen. Die Version Max darf seit Dezember wieder fliegen - doch Kritiker halten die Verbesserungen für unzureichend.
Ein Bericht von Friedrich List

  1. Flugzeug Boeing erhält den letzten Auftrag für den Bau der 747
  2. Boeing 737 Max Boeing-Strafverfahren gegen hohe Geldstrafe eingestellt
  3. Zunum Luftfahrt-Startup verklagt Boeing

Westküste 100: Wie die Energiewende an der Küste aussehen soll
Westküste 100
Wie die Energiewende an der Küste aussehen soll

An der Nordseeküste stehen die Windräder auch bei einer frischen Brise oft still. Besser ist, mit dem Strom Wasserstoff zu erzeugen. Das Reallabor Westküste 100 testet das.
Ein Bericht von Werner Pluta

  1. 450 MHz Energiewirtschaft gewinnt Streit um Funkfrequenzen
  2. Energiewende Statkraft baut Schwungradspeicher in Schottland

Facebook: Whatsapp stellt Nutzern ein Ultimatum
Facebook
Whatsapp stellt Nutzern ein Ultimatum

Nutzer, die den neuen Geschäftsbedingungen und der neuen Datenschutzerklärung nicht bis zum 8. Februar zustimmen, können Whatsapp nicht weiter verwenden.

  1. Facebook Whatsapp verschiebt Einführung der neuen Datenschutzregeln
  2. Watchchat Whatsapp mit der Apple Watch bedienen
  3. Strafverfolgung BKA liest Nachrichten per Whatsapp-Synchronisation mit