1

我想了解 Java 编程中的对象创建最佳实践。我在下面给出了一个例子请检查并建议我Java中的孤儿对象好还是坏?

我有一个Shape界面。

  1. Circle implements Shape
  2. Square implements Shape
  3. Cube implements Shape
  4. 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();
4

3 回答 3

2

在 Java 中,您创建对象来完成某些任务,当您完成它们时,您删除对它们的引用,以便它们被垃圾回收。您对这些对象的引用数量很少是性能问题;通常问题来自:

  1. 当您可以重用它们时创建了太多对象
  2. 您在清理引用时遇到错误(内存泄漏)。

您最关心的应该是您打电话的频率new

于 2015-04-14T14:29:02.143 回答
1

如果您只是创建一次性使用的对象,则两种方法都没有。甚至不为单个调用分配引用,直接调用:

new Circle().draw();
new Cube().draw();
new Sphere().draw();
...

其他一切都只是令人困惑,持有一个您实际上不需要的参考会妨碍可读性。

于 2015-04-14T15:08:39.520 回答
1

如果在调用对象的方法后不需要对象draw,则可以忘记对它们的引用。它们将有资格进行垃圾收集,并且当垃圾收集器完成工作时,它们占用的内存将被回收。

因此,如果您关心内存管理,那么“孤立”对象是标准的 Java 实践。

于 2015-04-14T14:23:52.413 回答