Ich habe Objekte gesehen, die in Java-Code erstellt wurden, ohne einen Verweis auf das Objekt zu speichern. In einem Eclipse-Plugin habe ich beispielsweise eine SWT-Shell gesehen, die folgendermaßen erstellt wurde:
new Shell();
Dieses neue Shell-Objekt wird nicht in einer Variablen gespeichert, sondern es wird solange referenziert, bis das Fenster freigegeben wird. Dies geschieht standardmäßig, wenn das Fenster geschlossen wird.
Ist es eine schlechte Praxis, solche Objekte zu erstellen, ohne einen Verweis darauf zu speichern? Oder war die Bibliothek schlecht gestaltet? Was ist, wenn ich keine Referenz benötige, sondern nur die "Nebenwirkungen" des Objekts sehen möchte? Sollte ich trotzdem eine Referenz speichern?
AKTUALISIEREN:
Zugegeben, mein obiges Beispiel ist schlecht. Während ich solche UI-Elemente gesehen habe, wäre das Erstellen einer solchen SWT-Shell wahrscheinlich sinnlos, da Sie die open-Methode für die Shell-Instanz aufrufen müssen. Es gibt bessere Beispiele von aix, wie zum Beispiel die folgenden aus dem Java-Tutorial zur Parallelität :
(new HelloThread()).start();
Diese Praxis wird in vielen Zusammenhängen gesehen, daher bleiben die Fragen offen. Ist es eine gute Übung?
Shell.createTopLevelShell()
oder was auch immer zu haben, als in diesem Fall einen Konstruktor zu verwenden. Aber funktional gibt es kaum einen Unterschied.)
dispose()
d sein: Regel 1: Wenn Sie sie erstellt haben, entsorgen Sie sie. eclipse.org/articles/swt-design-2/swt-design-2.html