2011-02-03 17 views
1

私はドメイン駆動型デザインを初めて使用しています。私は、ユーザーが進行中の中間結果をタスクを通して保存することができるWebアプリケーションを用意しています。つまり、ドラフトとしてフォームにデータとして保存し、後でそれを埋め込むために戻ってきます。フォームがエンティティとその集約のルートを表す場合、状態に基づいてハーフベーク状態でエンティティを保存してもよろしいですか?セーブ、進捗、DDD、エンティティ

答えて

1

これに応じて、本当に正しい答えはありません。

このルートに行くことができますが、それは、ドメインオブジェクトが無効な状態にならないということに従う傾向がある別の原則に干渉する可能性があります。

状態によってこれを行うことは論理的かもしれませんが、サブシステムのドメインはフォームの提出です。つまり、ドメイン自体はフォームの半分を除外しません。提出時にのみ、すべての必須フィールド完了する必要が実際に影響を与えます。

例えばそれが有効であるために、フォームに記入半分にとって意味の多くを作るかもしれない - フォームは、それが完全なものとしてカウントすることができまで(上司のサインオフの取得など)のワークフローを通過する必要がある場合は特に

+0

そんなに礼拝してくれてありがとう。はい、コンテキストベースです。これは、ドメインオブジェクトが有効な状態になっていないのと同じコンフリクトであり、ワークフローの進行に伴って保存されるようにする必要があります。 – Gopal

+0

私の喜び - この場合のように思われる - あなたは本当に2つの異なるタイプのバリデーションを持っています - ValidForSaveとValidForSubmission – saret

+0

@GeorgeKTおそらく、あなたは単一のドメインエンティティで2つの異なる概念をモデル化しようとしていますか?私はDDDには新しく、同様に学びたいと思っていますが、ビジネスの問題として見れば、貯蓄の進歩がドメインの一部になる可能性があります。不完全なままにできるDraftEntityを持つのはどうですか?プロセスが完了すると、DraftEntityはEntityに変換されます。 – plalx