Ext - 扩展点Identity - 业务身份public abstract class BaseRouter<Ext extends IDomainExtension,Identity extends IIdentity> extends Object implements IDomainService
BaseRouter是最小粒度的IDomainService,只负责一个扩展点的编排
| 构造器和说明 |
|---|
BaseRouter() |
| 限定符和类型 | 方法和说明 |
|---|---|
abstract Ext |
defaultExtension(Identity identity)
默认扩展点实现.
|
protected Ext |
firstExtension(Identity identity)
找到第一个符合条件的扩展点实例.
|
protected Ext |
firstExtension(Identity identity,
int timeoutInMs)
找到第一个符合条件的扩展点实例,并指定扩展点最大执行时长,超时抛出
TimeoutException. |
protected Ext |
forEachExtension(Identity identity)
不关心扩展点返回值,逐一执行所有符合业务身份的扩展点.
|
protected <R> Ext |
forEachExtension(Identity identity,
@NonNull IReducer<R> reducer)
遍历满足条件的所有扩展点实例.
|
protected Ext forEachExtension(@NonNull Identity identity)
identity - 业务身份protected <R> Ext forEachExtension(@NonNull Identity identity, @NonNull @NonNull IReducer<R> reducer)
通过IReducer控制何时退出遍历.
R - 扩展点方法的返回值类型identity - 业务身份reducer - 收敛逻辑protected Ext firstExtension(@NonNull Identity identity)
这表示:扩展点实例之间是互斥的,无法叠加的
如果需要根据扩展点执行结果来找第一个匹配的扩展点实例,请使用#forEachExtension(Identity, IReducer)
identity - 业务身份protected Ext firstExtension(@NonNull Identity identity, int timeoutInMs)
TimeoutException.
这表示:扩展点实例之间是互斥的,无法叠加的
如果需要根据扩展点执行结果来找第一个匹配的扩展点实例,请使用#forEachExtension(Identity, IReducer)
identity - 业务身份timeoutInMs - 执行扩展点的超时时间,in ms;如果超时,会强行终止扩展点的执行Copyright © 2020–2023. All rights reserved.