一个物体可以自行移除吗?怎么样?

Ali*_*a Z 9 java object

我正在尝试编写一个简单的球类游戏,并且有几个回合(即,球的生命).当球通过屏幕的底部边界时,球"死亡".到目前为止我的工作,但似乎不是正确的做事方式:

if (ball.getY() > bottomOfScreen) {
  ball.die();
  remove(ball);
}
Run Code Online (Sandbox Code Playgroud)

模具()方法基本上淡出球的颜色慢慢地(dark_gray - >暂停(50) - > light_gray - >暂停(50)),但实际上并没有做什么有用的东西.

显然,remove()从屏幕上移除了球,这就是我想要的.这是有道理的我,这remove()方法是球的模具()方法,的一部分,而不是它是在主程序中一个单独的方法调用 - 但是我不知道如何去吗?

对象可以自行删除吗?而且,如果可以的话,从哲学/方法论的角度来看,对象自杀是否比对象谋杀更好?

谢谢!

Joh*_*erg 5

该对象可以删除自身,因为它具有对视图呈现机制的某种引用.您的示例没有提供足够的信息,因此我将举例说明一种方法:

public class Ball {
    private ViewRenderer view;

    public void remove() {
       view.remove(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

无论是自杀还是谋杀都不是更好或更糟.这取决于您的设计和要求.

在这个例子虽然,谋杀可能是最好,因为这样的Ball对象并不需要知道在哪个上下文的被使用.