1
这是我一直在努力的第二个项目,我面临同样的问题。如何正确处理业务对象状态的进展?到目前为止,我们使用一个基本的开关/箱:操作工作流引擎Java API
public void pushTransferToStatus(Long id, Status status) {
// SOME PRECONDITIONS
switch (currentStatus) {
case OPEN:
// DO SOMETHING
break;
case SAVED:
// DO SOMETHING ASYNC
break;
case VALIDATED:
// DO SOMETHING
break;
case AWAITING_SHIPPING:
// DO SOMETHING
break;
case VERIFIED:
// DO SOMETHING
break;
case CLOSED:
// Exit case.
break;
default:
throw new UnsupportedOperationException();
}
pushTransferToStatus(id, newStatus);
}
这导致意大利面条代码,你可以看到我有一个aync操作执行。我想知道是否有某种高级API可以帮助我处理这个简单的工作流程?
我读了很多关于jBPM的,但我不知道它是否适合你的帮助我的需要...谢谢
到目前为止,我发现这些它们很简单,但将是真棒有一些集成到Eclipse
- https://github.com/hekailiang/squirrel
- https://github.com/Beh01der/EasyFlow
- https://github.com/oxo42/stateless4j
要关闭这个问题,貌似https://github.com/spring-projects/spring-statemachine是解决重构,这将是对每个病例以及pushTransferToStatus
移动运营成状态的一个子类的