Wo sollte man Objekte erzeugen?



  • Innerhalb der Klasse des Objekts (z.B. in einer statischen Klassenmethode die dann zur Objekterzeugung aufgerufen wird) oder außerhalb davon (z.b. in main)?

    Technisch ist ja beides möglich, aber welche Variante ist der bessere Programmierstil?



  • Genau da, wo es nötig ist.



  • Wo soll ich mit meinem Auto hinfanren? Nach Berlin oder nach Hamburg?



  • ähhmm schrieb:

    Wo soll ich mit meinem Auto hinfanren? Nach Berlin oder nach Hamburg?

    Dorthin, wo es nötig ist 😃 😃



  • Objekte werden im Konstruktor erzeugt. Oder bezieht sich deine Frage darauf, wo der Konstruktor aufgerufen wird? - Dort, wo das Objekt benötigt wird.



  • pumuckl schrieb:

    Objekte werden im Konstruktor erzeugt. Oder bezieht sich deine Frage darauf, wo der Konstruktor aufgerufen wird? - Dort, wo das Objekt benötigt wird.

    class bla(){
      public static bla erstellObjekt(){
         return new bla;
      }
    }
    
    public static void main(String[] args){
      bla x = bla.erstellObjekt();
    
    }
    

    vs.

    class bla(){
      bla(){
      }
    }
    
    public static void main(String[] args){
      bla x = new bla();
    }
    


  • Dir sollte klar sein, wozu man die erste von dir aufgeführte Methode benutzt und wann die letzte.
    Wenn eine Methode für dich ein Objekt erzeugen soll, dann deshalb, weil man die vollständige Gewalt nicht dem User abgeben will. Z. B. will man sicherstellen, dass es nur eine Instanz von der Klasse gibt.

    Soll es keine Einschränkungen bei der Objekterzeugung geben, die man nicht auch irgendwie im Konstruktor lösen kann, dann nimmt man die zweite von dir ausgeführte Methode.

    L. G.
    Steffo



  • Die Frage war einfach nur: Wann nimmt man eine Factoy Methode und wann nicht.
    Die Lösung ist einfach, sobald es aufwändiger ist ein Objekt zu erstellen, oder wenn die Erstellung überschreibbar sein soll, dann ne Factory Methode, ansonsten ist es unnötiger overhead.


Anmelden zum Antworten