Comperator: Integer::compare vs Subtraktion

Diskutiere Comperator: Integer::compare vs Subtraktion im Plauderecke Forum; Nö, aber so: public class Tetris extends JFrame { private JLabel statusbarScore, statusbarHighScore; private JPanel statusPanel;...

  1. Flown
    Flown Administrator Mitarbeiter
    Wo ist jetzt der Mehrwert gegenüber dem:
    Code (Java):

    public class Tetris {

        private JFrame frame;
        private JLabel statusbarScore, statusbarHighScore;
        private JPanel statusPanel;
        private Board board;
        private Preferences pref;

        public Tetris() {
            frame = new JFrame("Tetris    (Super Game)");
            pref = Preferences.userNodeForPackage(Tetris.class);
            statusPanel = new JPanel();
            statusbarScore = new JLabel("Score 0");
            statusbarHighScore = new JLabel("HighScore " + pref.get("highscore", "0"));
            statusPanel.setLayout(new GridLayout(1, 2, 5, 5));
            statusPanel.add(statusbarScore);
            statusPanel.add(statusbarHighScore);
            frame.add(statusPanel, BorderLayout.SOUTH);
            board = new Board();
            frame.add(board);
            frame.setSize(350, 600);
            frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            board.start();
            //...
        }
    }
     
  2. JStein52
    JStein52 Bekanntes Mitglied
    wie sagt @mrBrown ... schon bist du an diesen Frame gebunden ...
    Der Nachteil ist dass du die Grösse nicht mehr ändern kannst, dass du keine Hintergrundfarbe einstellen kannst ...
    Im Übrigen hast du die Diskussion geschickt umgedreht :):) ich habe ja nie gesagt man muss von JFrame ableiten sondern ich habe gesagt man darf von JFrame ableiten. Eigentlich musst du begründen warum man nicht darf, denn das ist in solchen Fällen ja immer dein Ceterum censeo ! Und da habe ich ausser dem CleanCode-Argument noch nichts gehört :):)
     
  3. Flown
    Flown Administrator Mitarbeiter
    Methode dafür erstellen und durschleusen? Nur das nach außen leiten, was nach außen soll? Seh ich jetzt als Vorteil und nicht als Nachteil. Eine API öffnen ist immer möglich zu restriktieren nicht mehr.
    Es können ungewünschte Änderungen an "deinem Frame" gemacht werden.
    Deine Aussage ist ständig: Weils jeder macht ist es auch richtig und soll so gemacht werden. Dann sage ich, dass es bad-practise ist und das man in deinem Frame herumwurschteln kann. Du widerum: Ist mir egal?!
    Ich habe logisch begründet, dass es gegen OOP Prinzipien verstößt (e.g. Composition-over-Inheritance) - wo du auch so darauf beharrt hast, dass du deine eigenen Design Pattern hast - und das reicht anscheinend auch nicht.

    Ein letzten Versuch starte ich nochmal:
    - Bitte erkläre in einem kurzen Satz, was der Vorteil am Ableiten von JFrame ist.
    - Erläutere mir bitte in einem kurzen Satz was der Vorteil ist, Subtraktion für einen Comparator zu verwenden, als die Integer::compare Methode.
     
    JCODA gefällt das.
  4. JStein52
    JStein52 Bekanntes Mitglied
    :):) Schon wieder versuchst du es umzudrehen.
    - Ich habe gesagt beim compare (da ging es übrigens um den Vergleich des Alters, nicht um Integers allgemein)
    sehe ich keinen Nachteil.
    - ich habe gesagt beim ableiten von JFrame habe ich die Möglichkeit Eigenschaften von JFrame noch zu verändern.
    Wenn ich das mal explizit nicht will dann mache ich es eben nicht. Und es kann ja nicht sein dass die halbe Welt
    sich irrt. Wenn hier ständig der Hinweis kommt nicht von JFrame ableiten dann frage ich halt warum denn wenn
    es doch an zig Stellen anders gelehrt wird.

    Ich habe in beiden Fällen nicht gesagt man muss es so machen. Und wer woher auch immer meine Klasse Tetris kopiert und ein TicTacToe da einhängen möchte dem wünsche ich viel Spass damit aber es hat absolut nichts mit meinem Tetris-Spiel zu tun !
     
  5. mrBrown
    mrBrown Bekanntes Mitglied
    Das leg ich allerdings als Nachteil aus, nicht als Vorteil...
     
  6. JStein52
    JStein52 Bekanntes Mitglied
    Ich auch, das war ja meine Kritik an @Flown 's Variante :):)
     
  7. mrBrown
    mrBrown Bekanntes Mitglied
    Die Variante erweitert man schnell um einen überladenen Konstruktor, und schon kann das auf jedem Container angezeigt werden ;)
    Bei deiner Variante eher nicht möglich...
     
  8. Flown
    Flown Administrator Mitarbeiter
    Naja Kern der Diskussion war ja eigentlich: Warum Subtraktion verwenden, die einen möglichen Überlauf hat, oder die compare-Methode anwenden. In dem Anwendungsfall(Alter) ist es sehr unwahrscheinlich diesen Fehler zu reproduzieren, aber eben nicht auszuschließen. Darum gleich compare Methode anwenden und sich nachher nicht den Kopf zerbrechen müssen.
    Auch wenn man es nur nutzt als Feld, Variable, etc.
    Ahja du sprichst immer von selbst denken, aber hier ist einfach der Lemming-Effekt doch schon sehr groß.

    Ich komme zum Schluss: Jeder kocht sein eigenes Süppchen. Für den einen reicht: funktioniert, für die anderen: funktioniert in jedem Fall.

    PS: Hat Spaß gemacht die Diskussion
     
    JCODA gefällt das.
  9. mrBrown
    mrBrown Bekanntes Mitglied
    Ich würde ja genau den gegensätzlichen Weg nehmen - etwas nur dann machen, wenn es explizit nötig ist, und sonst sein lassen ;)
     
    JCODA und Flown gefällt das.
  10. JStein52
    JStein52 Bekanntes Mitglied
    Danke, ebenfalls ;)
     
Die Seite wird geladen...

Comperator: Integer::compare vs Subtraktion - Ähnliche Themen

Comperator Probleme
Comperator Probleme im Forum Allgemeine Java-Themen
Externe Comperator-Klasse
Externe Comperator-Klasse im Forum Java Basics - Anfänger-Themen
ArrayList<ArrayList> sortieren - hilfe bei Comperator
ArrayList<ArrayList> sortieren - hilfe bei Comperator im Forum Java Basics - Anfänger-Themen
problem mit sortierung interface comperator
problem mit sortierung interface comperator im Forum Java Basics - Anfänger-Themen
Thema: Comperator: Integer::compare vs Subtraktion