2016-07-27 10 views
0

私はJavaでゲームを作成しています。私はゲームのスレッドを設定し、ゲームの動作方法を主に扱うDirectorクラスを持っています。クラスは決して1回以上インスタンス化されるべきではありません。クラス内の変数は静的変数かどうか私はJavaのコーディング規約(他のオブジェクト指向の言語ではないにせよ)がこのようなものであるかどうか不思議です。一度だけインスタンス化されるクラスで静的変数を使用する必要がありますか?

ありがとうございます!

+1

あなたはシングルトンを記述しています。 https://en.wikipedia.org/wiki/Singleton_pattern – sprinter

答えて

1

いいえ、メンバー変数はstaticであってはいけません。関連する唯一のことは、ジョブを管理するためにDirectorクラスの単一のインスタンスが必要であることです。これは、コードに応じてstaticにすることもできないこともあります。

コードの周囲からDirectorインスタンスにアクセスする必要がない場合、インスタンスをどこかに置くことができます。そうしないと、singletonパターンが役立ちます。これは、コード内のどこからでもアクセス可能なクラスの1つのインスタンスを管理するパターンです。

ような何か:

class Director { 
    private static Director director; 

    private Director() { 
    ... 
    } 

    public static Director getInstance() { 
    if (director == null) 
     director = new Director(); 

    return director; 
    } 
} 
+0

私は本当にクラスで行うことは、それをインスタンス化する唯一のことは同じですか?私はそのメソッドや何も呼び出さないように。 –

+0

'class'のメソッドを外部のどこからでも呼び出さなければ、' void main(String [] args) 'にそれを割り当てると、プログラムの終了時まで生き残ることができます。 – Jack

1

あなたが見ているのはSingletonデザインパターンです。メンバ変数が静的である必要はありません。

+0

でそれらを実装するためのさまざまなオプションに関する有益な情報があります。それは有り難いです。私は他の質問でシングルトンのデザインパターンを見ましたが、通常は静的なクラスについて話していましたが、私はそれがないと確信しています。 –

関連する問題