3

私の質問は奇妙に思えるかもしれません、そしてそれが可能かどうかはわかりませんが、それはあります:

いくつかのクラス(UseCases)があり、すべてインターフェイス=>を実装していますIUseCase

UseCase1 implementing IUseCase
UseCase2 implementing IUseCase
etc.

UseCaseContextまた、いくつかのユースケースに関する情報を運ぶことになっている別のクラス" "もあります。

私の目標は、ごとに1のインスタンスを持つことです。そのためには、UseCaseContextに、このコンテキストがUseCase1またはUseCase2などに関連しているかどうかを示すフィールドが必要です。UseCaseContextUseCase

したがって、ユースケースのインスタンスをフィールドに格納するのではなく、どちらにUseCase関連UseCaseContextしているかを判断する別の方法はありますか?

これは混乱を招く可能性があることを私は知っているので、そうでなければ説明する必要があるかどうか教えてください:)

ありがとうございました !

4

3 に答える 3

5

コメントですでに指摘したように、クラス参照をUseCaseContext:に保存するだけです。

public class UseCaseContext 
{
  private Class<? extends IUseCase> useCaseClass;
  ...
}
于 2013-02-18T13:23:34.387 に答える
3
IUseCase some_instance = new UseCaseX();
String className = some_instance.getClass().getSimpleName()

これにより、UseCaseXが文字列として返されます。それはあなたが望むものですか?

PSクラスの文字列名が必要ない場合は、クラスオブジェクト(Class clazz = some_instance.getClass())を使用して、あるユースケースを別のユースケースと区別できます。

于 2013-02-18T13:22:39.380 に答える
2

これを試して:

 public class UseCaseContext {

     private Class useCaseClass;

     public UseCaseContext(Class useCaseClass) {
        this.useCaseClass = useCaseClass;
     }
 }

次に、次のように呼び出すことができますnew UseCaseContext(instance.getClass())

于 2013-02-18T13:24:41.353 に答える