R
- 扩展点方法的返回值类型public interface IReducer<R>
MapReduce pattern.
Accepts a list of extensions and a reduce function to produce the result.
It basically says the providers can coexist, but you need to coordinate their results.
限定符和类型 | 方法和说明 |
---|---|
static <R> IReducer<R> |
allOf()
执行所有的扩展点,并永远返回null.
|
static <R> IReducer<R> |
allOf(Predicate<R> predicate)
已过时。
这个方法理解起来怪怪的,use
allOf() instead |
R |
reduce(List<R> accumulatedResults)
扩展点执行结果的收敛.
|
boolean |
shouldStop(List<R> accumulatedResults)
判断扩展点执行是否该停下来.
|
static <R> IReducer<R> |
stopOnFirstMatch(@NonNull Predicate<R> predicate)
执行所有的扩展点,直到谓词第一次匹配到了扩展点返回值为止.
|
R reduce(List<R> accumulatedResults)
accumulatedResults
- 目前已经执行的所有扩展点的结果集boolean shouldStop(List<R> accumulatedResults)
accumulatedResults
- 目前已经执行的所有扩展点的结果集static <R> IReducer<R> stopOnFirstMatch(@NonNull @NonNull Predicate<R> predicate)
典型场景:是否允许用户注册是扩展点,注册时无需知道有哪些扩展点实现,逐一执行,直到找到一个返回false就停下来,Fail Fast
与firstExtension
不同,找到第一个符合业务身份的扩展点 vs 逐一执行符合业务身份扩展点直到第一个结果符合谓词条件
R
- 扩展点方法的返回值类型predicate
- 谓词,判断扩展点返回值是否符合谓词条件static <R> IReducer<R> allOf()
R
- 扩展点方法的返回值类型@Deprecated static <R> IReducer<R> allOf(Predicate<R> predicate)
allOf()
insteadR
- 扩展点方法的返回值类型predicate
- expected result predicate. if null, always return nullCopyright © 2020–2023. All rights reserved.