我见过用Java代码创建的对象,但没有存储对该对象的引用。例如,在eclipse插件中,我看到了SWT Shell的创建过程,如下所示:
new Shell();
这个新的Shell对象没有存储在变量中,但是将一直保持引用状态,直到处理完该窗口为止(默认情况下,关闭该窗口时会发生[我相信?])。
创建这样的对象而不存储对它们的引用是不好的做法吗?还是图书馆设计不当?如果我不需要引用,而只想要对象的“副作用”怎么办?我是否仍应存储参考?
更新:
诚然,我上面的例子很差。虽然我看到过这样创建的UI元素,但是创建这样的SWT Shell可能毫无意义,因为您需要在Shell实例上调用open方法。有由AIX提供更好的例子,如从以下Java并发教程:
(new HelloThread()).start();
在许多情况下都可以看到这种做法,因此问题仍然存在。这是好习惯吗?
Shell.createTopLevelShell()
在这种情况下,使用静态方法(诸如此类)与使用构造方法相比可能会更好。但是从功能上讲,两者之间没有什么区别。)
dispose()
d: 规则1:如果创建了它,则将其处置。 eclipse.org/articles/swt-design-2/swt-design-2.html