Eu vi objetos criados no código Java sem armazenar uma referência ao objeto. Por exemplo, em um plug-in do eclipse, eu vi um SWT Shell criado assim:
new Shell();
Esse novo objeto Shell não é armazenado em uma variável, mas permanecerá referenciado até que a janela seja descartada, o que [acredito?] Acontece por padrão quando a janela é fechada.
É uma má prática criar objetos como esse sem armazenar uma referência a eles? Ou a biblioteca foi mal projetada? E se eu não precisar de uma referência, mas quiser apenas os "efeitos colaterais" do objeto? Devo armazenar uma referência de qualquer maneira?
ATUALIZAR:
É certo que meu exemplo acima é ruim. Embora eu tenha visto elementos da interface do usuário criados assim, a criação de um SWT Shell como esse provavelmente não faria sentido, porque você precisa chamar o método open na instância do Shell. Existem exemplos melhores fornecidos pelo aix , como os seguintes no tutorial sobre simultaneidade Java :
(new HelloThread()).start();
Essa prática é vista em muitos contextos, então as questões permanecem. É uma boa prática?
Shell.createTopLevelShell()ou o que quer, vs usando um construtor neste caso, mas funcionalmente há pouca diferença..)
dispose()d: Regra 1: se você o criou, você o descarta. eclipse.org/articles/swt-design-2/swt-design-2.html