0

类将自己传递给自己的对象是不好的做法吗?

例如:

public class MainView extends SurfaceView {
    Stack<GameObject> objs;

    public MainView() {
         new GameObject(this);
    }

    public void Add(GameObject obj) {
         objs.push(obj)
    }

    public void Remove(GameObject obj) {
         objs.pop(obj)
    }
}

public class GameObject {
    MainView parent;
    int state; 

    public GameObject(MainView parent) {
        this.parent = parent;
        parent.Add(this);
    }

    public void doStuff() {
        if(state == 1) {
              new GameObject(parent);
        } 
        else if(state == 2) {
              parent.Remove(this);
        } 
    }
}

我努力删除静态方法/变量。现在我必须将视图传递给它自己的对象。这是一个不好的做法吗?对象应该有逻辑还是 SurfaceView 应该包含所有逻辑?

4

1 回答 1

0

你在开发游戏吗?如果是这样,我建议您阅读thisthis。surfaceview 应该只负责将游戏对象渲染到屏幕上。然而,每个游戏对象都应该包含逻辑(其行为)和对要绘制的画布的引用,最终将绘制到表面视图。然而,游戏的整体逻辑应该在一个负责所有游戏对象的生成和管理的类中(例如命名世界)。

我希望这有帮助。

于 2012-12-11T13:36:33.637 回答