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

ゲームを開発していますか?もしそうなら、私はあなたがこれこれを読んだことをお勧めします。サーフェスビューには、ゲームオブジェクトを画面にレンダリングする機能のみが必要です。ただし、各ゲームオブジェクトは、ロジック(その動作)と描画するキャンバスへの参照を保持する必要があり、最終的にはサーフェスビューに描画されます。ただし、ゲームの全体的なロジックは、すべてのゲームオブジェクトの生成と管理をすべて処理するクラス(名前付きワールドなど)に含める必要があります。

これがお役に立てば幸いです。

于 2012-12-11T13:36:33.637 に答える