java - 如何在 java/kotlin 中启动工作流程或启动操作链
问题描述
如何在 java/kotlin 中启动工作流程或启动一系列操作?
我有一个有几个步骤的工作流程。每个步骤都根据if条件执行,如果条件满足我们执行该步骤,如果不满足则继续下一步。
解决方案
Step1:创建接口
interface Chain {
fun setNextChain(nextChain: Chain?)
fun getChainResponse(someInput: SomeInputClass): ChainResponse?
}
Step2:为工作流程中的 ech 步骤创建类并实现链接口
class Step1InWorkflow : Chain {
private var nextInChain: Chain? = null
override fun setNextChain(nextChain: Chain?) {
nextInChain = nextChain
}
override fun getChainResponse(
someInput: SomeInputClass
): ChainResponse? {
return if ( execute step1 based on some condition) {
// FLOW -> Step 1
getStepOneResponse(contractant)
} else {
setNextChain(Step2InWorkflow())
nextInChain?.getChainResponse(someInput: SomeInputClass)
}
}
private fun getStepOneResponse(input: Input): ChainResponse {
// logic and return response
}
}
Step3:工作流程结束
class Step2InWorkflow : Chain {
private var nextInChain: Chain? = null
override fun setNextChain(nextChain: Chain?) {
nextInChain = nextChain
}
override fun getChainResponse(someInput: SomeInputClass): ChainResponse? {
// some business logic
return getStep2Response(input)
}
private fun getStep2Response(input:Input): ChainResponse {
// return response
}
}
推荐阅读
- javascript - 从对象中获取字段并将其返回到数组中
- python - Sigmoid 以随机顺序生成预测
- reactjs - react-pose: enter from left, exit from right
- ruby-on-rails - rails 默认范围有两个值
- javascript - 修改谷歌图表中的最大值
- s4sdk - 使用 SDK 2.8.1 版本创建的项目无法构建
- rest - 使用 AWS API Gateway RestApi 获取有关密钥的信息
- java - java - 我是否必须在继承类中覆盖所有版本的重载函数?
- python - Django - 如何在每次调用views.py时访问相同的列表?
- orange-api - 从 Orange-API 导出数据