【发布时间】:2018-04-17 15:40:33
【问题描述】:
我有一个活动接口:public interface BaseActivity
我的活动实现是:public class ABCActivity implements BaseActivity
我想添加第二个活动实现,它也实现了BaseActivity,例如public class DEFActivity implements BaseActivity。
我还希望我的活动工作者能够处理这些活动中的任何一个。
从我一直在尝试的情况来看,这似乎是不可能的。
public interface BaseActivity {
String activityMethod();
}
@Activities(version = 1.0", ...)
@ActivityRegistrationOptions( ... )
public interface ABCActivity extends BaseActivity {}
@Activities(version = 1.0", ...)
@ActivityRegistrationOptions( ... )
public interface DEFActivity extends BaseActivity {}
生成的ABCActivityClient 和DEFActivityClient 不包含activityMethod。显然,如果我这样做:
@Activities(version = 1.0", ...)
@ActivityRegistrationOptions( ... )
public interface ABCActivity extends BaseActivity {
String activityMethod()
}
那就没事了,不过这样就违背了BaseActivity的意思。
我认为工作流接口和实现是一样的。
有人有什么建议吗?
我问的原因是因为我想构建具有相同界面的多个工作流实现。这些工作流将共享一些常见的活动(1 个接口,1 个实现),但也会使用一些具有相同接口但实现不同的活动(1 个接口,多个实现)。
当然,对于“具有相同接口但实现不同的活动”,我可以写出不同的接口:
public interface ABCActivity
public class ABCActivityImpl implements ABCActivity
public interface DEFActivity
public class DEFActivityImpl implements DEFActivity
【问题讨论】:
标签: java amazon-web-services amazon-swf