EventChain 是一个用于对复杂的业务场景进行解耦的库。
将复杂的业务流程抽象和拆务分为多个相互独立的业流程,其中独立的业务流程称之为Event。然后利用EventChain进行积木式搭建成完整的业务流程。
repositories {
maven { url 'https://www.jitpack.io' }
}
dependencies {
implementation 'com.github.ftmtshuashua:EventChain:2.0.2'
}
/**
* 创建一个事件,该事件的入参是一个整形数据,出参也是一个整形数据.
* 内部逻辑将入参平方后结束.
*/
class SimperEvent() : BaseEvent<Int, Int>() {
override fun onCall(params: Int) {
next(params * params)
}
}
//lesson 1 - 简单使用,并获取执行结果
SimperEvent()
.listener(OnEventNextListener { println("result:$it") }) //result:4
.start(2)
//lesson 2 - 将多个事件组合求值
SimperEvent()
.listener(OnEventNextListener { println("result:$it") }) //result:4
.chain(SimperEvent())
.listener(OnEventNextListener { println("result:$it") }) //result:16
.start(2)