質問

言って、私は、ビジネス・プロセス管理アプリケーションを構築しています。問題とタスク、多くのタスクに1つの課題として互いに関連:それは次のエンティティを持っています。どちらも、タスクや問題は、自分の状態と1の状態が別の状態に影響を与えることができる持っています。

たとえば、それらの両方は、「キャンセル」しているとの状態を「完了します」。私は、「キャンセル」するために、問題の状態を変更すると、そのタスクの全ては、「キャンセル」になるはずです。私は「完了」するすべてのタスクの状態を変更すると、問題は、自動的に「完了」になるはずです。

両方のエンティティとある状態から別の状態への遷移のロジックと変更されることがあり状態の依存関係のためにかなりの数の国がそのような状況を処理するための任意のデザインパターンおよび/またはベストプラクティスがあり、そこにあると仮定すると?

役に立ちましたか?

解決

心に飛躍デザインパターンは、「ルール」である; - )

それとも、あなたが好む場合は、Commandパターン

(リフレクションを使用して)、言い換えれば、このような状況のために私は状態および許容可能な遷移をリストデータベーステーブルを作成し、各遷移にアクションを関連付けます

私は、これは、遷移アクションがちょうど合うようにステータスを更新するよりも、より複雑である場合を処理するために有用であることがわかってきます。

は、例えば、1つのシステム内で、我々は、要求文書は、いくつかの委員会の審査ステーションを通過するように、それぞれが拒否することができたり、次のステージに文書を渡し、プラスカスタム副作用procesingたワークフローを持っていました。委員会の組織、処理構造、および処理アクション3回はを大幅に変更し、開発中のの、および展開の最初の年に5回以上ます。

他のヒント

私はこの種のもののためのオブザーバーパターンを好む: http://en.wikipedia.org/あなたが与えた例では、ウィキ/ Observer_pattern に、私は仕事が彼らの問題を観察し、問題が自分のタスクを観察する必要があるだろう。問題がキャンセルとマークされている場合、タスク自体が取り消さ参照してマークします。タスクが完了とマークされている場合、問題はなど、これと他のタスクが完了しているかどうかを確認するためにチェックを見ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top