我想了解Java编程中的对象创建最佳实践。 我在下面给出了一个例子请检查并建议我 Java中的孤儿对象好还是坏?
我有一个Shape
界面。
Circle implements Shape
Square implements Shape
Cube implements Shape
Sphere implements Shape
方法#1导致孤儿对象,方法#2导致不必要的引用。哪种方法是最佳做法?
方法#1
Shape shape;
shape = new Circle(); // CREATES CIRCLE OBJECT
shape.draw();
shape = new Cube(); // CREATES CUBE OBJECT
shape.draw();
shape = new Sphere(); // CREATES SPHERE OBJECT
shape.draw();
shape = new Square(); // CREATES SQUARE OBJECT
shape.draw();
方法#2
Circle circle = new Circle();
circle.draw();
Cube cube = new Cube();
cube.draw();
Sphere sphere = new Sphere();
sphere.draw();
Square square = new Square();
square.draw();
答案 0 :(得分:2)
在Java中,您创建对象以完成某些任务,当您完成它们时,您将删除对它们的引用,以便对它们进行垃圾回收。您对这些对象的引用数量很少是性能问题;通常问题来自:
您主要关心的是您拨打new
的频率。
答案 1 :(得分:1)
如果在调用方法draw
后不需要对象,则可以忘记对它们的引用。它们将有资格进行垃圾收集,当垃圾收集器完成工作时,它们占用的内存将被恢复。
因此,如果您关注内存管理,那么“孤立”对象就是标准的Java实践。
答案 2 :(得分:1)
如果你只是创建一次性使用的对象,那么这两种方法都没有。不要为单个呼叫分配参考,只需直接拨打电话:
new Circle().draw();
new Cube().draw();
new Sphere().draw();
...
其他所有内容都让人感到困惑,他们提供的参考资料实际上并不需要任何阻碍可读性的内容。