3

我的问题可能看起来很奇怪,我不知道是否可能,但确实如此:

我有几个类(UseCases)都实现了一个接口 => IUseCase

UseCase1 implementing IUseCase
UseCase2 implementing IUseCase
etc.

我还有另一个类“ UseCaseContext”,它应该包含一些关于几个用例的信息。

我的目标是拥有一个UseCaseContextper实例UseCase。为此,我需要 UseCaseContext 中的一个字段来告诉我此上下文是否与 UseCase1 或 UseCase2 等相关。

因此,除了将 UseCase 的实例存储在字段中之外,还有另一种方法来确定UseCasemy是否与哪个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()) 来区分一个 UseCase 和另一个。

于 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 回答