0

Stateという静的抽象クラスがあり、抽象メソッドstart()およびupdate()を定義し、Stateを実装する複数のクラスがあります。

クラスを作成したいと思います。それをStateMachineと呼びましょう。このクラスにはcurrentStateというプロパティがあります。currentState.update()などを実行できるように、状態を実装する静的クラスを指すこのプロパティを設定できるようにしたいと考えています。

今、私の質問があります:

プロパティのタイプは何ですか?私は州と言いたいのですが、それ以上の何かがあるように感じます. また、どのようにプロパティを設定しますか? は

currentState = ClassThatImplementsState;

することは有効ですか?

編集:わかりましたので、C# の静的クラスから継承できないことを知りました。ポリモーフィズムと状態オブジェクトのインスタンス化の両方を可能にする、これに似た方法を知りたいです。そのようなことはありますか?

4

1 に答える 1

2

State静的クラスの場合、複数のクラスを「実装」する、つまり派生させることはできません。一方、抽象クラスの場合は、そこから派生できます。しかし、それは両方ではありえません。

編集:実際に必要なのは、抽象クラスまたは静的クラスではなくシングルトンだと思います。C# でシングルトン パターンを実装する方法のヒントについては、http://msdn.microsoft.com/en-us/library/ff650316.aspx参照してください。

編集 2: アプリケーションがマルチスレッドの場合は、シングルトン パターンのスレッド セーフなバリアントを必ず使用してください。

于 2014-08-18T13:27:28.580 に答える