2011-02-03 4 views
1

Je suis nouveau à la conception pilotée par le domaine. J'ai une application web où l'utilisateur serait en mesure d'enregistrer les résultats intermédiaires de progrès grâce à une tâche d'économie à savoir que des données sur une forme de projet et de revenir pour le remplir plus tard. Si le formulaire représente une entité et que c'est la racine des agrégats, est-il possible de sauvegarder l'entité à l'état semi-cuit en fonction du statut?sauver, progrès, DDD, entité

Répondre

1

depends, il n'y a vraiment pas de réponse générale correcte à ce sujet.

Si l'on peut aller dans cette voie, il pourrait interférer avec un autre principe que je tendance à suivre ce qui est qu'aucun objet de domaine peut être dans un état non valide. Étant donné que le domaine de votre sous-système est une soumission d'un formulaire, il peut être logique de le faire par état, c'est-à-dire que le domaine n'exclut pas les formulaires à moitié remplis. besoin d'être complété vraiment entre en vigueur.

Par exemple, il peut faire beaucoup de sens pour une moitié remplie sous forme soit valide - surtout si la forme doit passer par un flux de travail (comme le superviseur SIGNOFF obtenir) jusqu'à ce qu'il puisse être considéré comme étant complet

+0

Merci beaucoup saret. Oui, c'est basé sur le contexte. C'est le même conflit auquel je suis confronté avec un objet de domaine qui n'est pas dans un état valide et que je devrais permettre qu'il soit sauvegardé à mesure qu'il progresse dans le flux de travail. – Gopal

+0

Mon plaisir - semble que dans ce cas, ça va - vous avez vraiment deux types de validation - ValidForSave et ValidForSubmission – saret

+0

@GeorgeKT Peut-être le problème est que vous essayez de modéliser deux concepts différents avec une seule entité de domaine? Je suis tout à fait nouveau pour DDD et essayer d'apprendre aussi bien, mais je me sens comme la progression d'économie pourrait faire partie du domaine si considéré comme une entreprise commerciale. Que diriez-vous d'avoir un DraftEntity qui est autorisé à être incomplet. DraftEntity serait alors transformé en entité une fois le processus terminé. – plalx