私は、リレーショナルデータベース(O/Rマッピング)に格納されたドキュメントを表すオブジェクトを持っています。このドキュメントには、その状態を識別するステータスフィールドがあります。すべてのステータス(すなわち、エントリー、承認待ち、送付済み、支払済など)は、それ自身の検証ルールと要件を持ちます。オブジェクト内でワークフローを実装する方法
私はこのようなワークフローの正しいオブジェクト指向の実装が何であるか疑問に思っています。これを行う最も簡単な方法は、
のようなifステートメントの束を配置することです。(ステータス==何か||ステータス==何か他のもの) 日付を変更できるかどうかを確認します。
複雑なシナリオでは、これは非常に読みにくくなります。
良いデザインのための提案?
あなたのドキュメントのライフサイクルまたはライフサイクルは、いくつかのボタンを有効/無効にするUIレベルに存在するだけでなく、Businee Logicレベルでも知っている必要があります。私はWF(Microsoft Workflow Foundation)を見ていますが、それは設定可能であり、必要なサーバー(さらにはそれ以上)をお勧めします;-) –