Instanz nutzen oder lieber direkter Zugriff auf Methoden



  • Hallo zusammen,

    noch eine kleine Frage zur Nutzung von Objekten und deren Methoden.

    Ich habe in den Klassen meines Programmes immer wieder eine Funktion eingefuegt,
    die ein Datum vom Format JJJJ-MM-TT in TT.MM.JJJJ wandelt und umgekehrt.

    Um Codezeilen einzusparen ist die Funktion jetzt in eine ToolsKlasse ausgelagert
    worden.

    Jetzt zu meiner Frage:

    Um mir eine Codezeile fuer die Instanzierung (hoffentlich richtig geschrieben)
    zu sparen, habe ich die Funktion so genutzt:

    String wert = new ToolsKlasse().datum_wandeln(<Arg1>,<Arg2>);
    

    oder sollte man lieber schreiben:

    ToolsKlasse tk = new ToolsKlasse();
    String wert = tk.datum_wandeln(<Arg1>,<Arg2>);
    

    oder ist die Nutzungsform egal?

    vielen Dank fuer eure Meinungen!



  • Sofern Du das Objekt häufiger brauchst, benutze Variante 2, weil ansonsten jedes Mal ein neues Objekt erzeugt wird, was Speicher und Laufzeit kostet.

    Aber wenn ich das richtig sehe, benutzt Deine Konvertierungsmethode gar keine Daten des Objekts und Du willst nur eine Art Namespace, richtig? Wenn ja, dann mache die Funktion statisch (mnittels static). So brauchst Du kein Objekt zu erzeugen.



  • Da stimme ich Chewie83 zu. Einfach static und ende.



  • Also ich würd eher nen Singleton nutzen..



  • DocJunioR schrieb:

    Also ich würd eher nen Singleton nutzen..

    Welchen Vorteil hätte das hier?



  • wollt grad sagen, weil wegen vernünftiger datenkapselung...

    wenn ich so drüber nachdenke.. funktion ohne gekapselte daten..
    naja gut.. machs statisch. ^^



  • Bloß kein Singleton wenn du tatsächlich statusbehaftete Helfermethoden darin hast, dann mach das auf keinen Fall sonst erlebst du dein blaues Wunder wenn du diese Methoden mal in einer multi-threaded Anwendung einsetzt.

    Wenn die Methoden nicht statusbehaftet sind, dann mach sie static.



  • Singleton ist kein ersatz für globale Variablen... 🙄


Log in to reply