私は同じ問題に直面していることに取り組んできた2番目のプロジェクトです。ビジネスオブジェクトの状態の進行を正しく扱うにはどうすればよいですか?これまでのところ、我々は基本的なスイッチ/ケースを使用します。オペレーションワークフローエンジン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のように見えるこのリファクタリングの溶液