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. Loy & Hutz Solutions GmbH, Freiburg im Breisgau
  2. Software AG, Darmstadt, Saarbrücken
  3. NEW Niederrhein Energie und Wasser GmbH, Erkelenz
  4. ServiceOcean SalesDE GmbH, Köln

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 49,99€ (Release 7. Mai)
  2. 34,99€ (Release 5. Februar)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Data-Mining: Wertvolle Informationen aus Datenhaufen ziehen
Data-Mining
Wertvolle Informationen aus Datenhaufen ziehen

Betreiber von Onlineshops wollen wissen, was sich verkauft und was nicht. Mit Data-Mining lassen sich aus den gesammelten Daten über Kunden solche und andere nützliche Informationen ziehen. Es birgt aber auch Risiken.
Von Boris Mayer


    Antivirus: Das Jahr der unsicheren Sicherheitssoftware
    Antivirus
    Das Jahr der unsicheren Sicherheitssoftware

    Antivirus-Software soll uns eigentlich schützen, doch das vergangene Jahr hat erneut gezeigt: Statt Schutz gibt es Sicherheitsprobleme frei Haus.
    Von Moritz Tremmel

    1. NortonLifeLock Norton kauft deutschen Antivirenhersteller Avira

    Google vs. Oracle: Das wichtigste Urteil der IT seit Jahrzehnten
    Google vs. Oracle
    Das wichtigste Urteil der IT seit Jahrzehnten

    Der Prozess Google gegen Oracle wird in diesem Jahr enden. Egal welche Seite gewinnt, die Entscheidung wird die IT-Landschaft langfristig prägen.
    Eine Analyse von Sebastian Grüner