我想了解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();
在 Java 中,您可以创建对象来完成某些任务,当您完成这些对象时,您可以删除对它们的引用,以便对它们进行垃圾回收。对这些对象的引用数很少是性能问题;通常问题来自:
- 创建太多对象,而您可以重用它们
- 您在清理引用(内存泄漏)时遇到错误。
最关心的应该是您多久打电话给new
一次。
当你在调用对象的方法draw
后不需要这些对象时,可以忘记对它们的引用。它们将有资格进行垃圾回收,并且当垃圾回收器完成它的工作时,它们占用的内存将被恢复。
因此,如果您关心内存管理,那么"孤立"对象是标准的 Java 实践。
如果只是创建一次性使用的对象,则这两种方法都不行。甚至不要为单个调用分配引用,只需直接进行调用:
new Circle().draw();
new Cube().draw();
new Sphere().draw();
...
其他一切都令人困惑,持有您实际上不需要任何东西的参考会阻碍可读性。