Je suis intéressé de voir comment les gens traitent les arbres de décision lors de DDD. Par exemple, nous avons besoin que lors de la persistance d'une nouvelle instance de type particulier, certaines associations "par défaut" doivent être construites (pas mal). L'utilisateur est libre de les changer plus tard cependant. Donc, si vous créez une table de décision, comment représentez-vous cela dans votre domaine, ou est-ce le cas? C'est dans le domaine de l'assurance, par exemple, si je choisis une option, tous les avantages, options, etc. "par défaut" associés sont ajoutés à la politique, mais l'utilisateur est libre de la modifier plus tard.Comment gérez-vous les "défauts" lorsque vous faites DDD
0
A
Répondre
0
Ceci n'est pas spécifique à DDD en soi, vous devez normalement l'implémenter en utilisant un Factory pour créer votre racine agrégée par défaut. Comme ce comportement est spécifique à l'entreprise et probablement sujet à changement, il est préférable d'externaliser la responsabilité de la création d'objet à l'usine plutôt que de laisser la racine agrégée s'occuper de cela elle-même.
0
Comme suggéré, utilisez une usine. Pour implémenter la valeur par défaut, utilisez le "special case pattern" tel que décrit par Martin Fowler pour avoir une véritable POO.
Par exemple, si vous avez une politique avec des propriétés prestations et options et ce sont des classes de créer une classe dérivée comme ceci:
class Policy
{
Benefit Benefit {get;set;}
IList<Option> Options {get;set;}
//Factory
public static Policy CreateDefaultPolicy()
{
var retVal = new Policy();
retVal.Benefit = new DefaultBenefit();
retVal.Options =new List<Options>();
retVal.Options.Add(DefaultLifeOption);
retVal.Options.Add(DefaultCarOption);
retun retVal;
}
}
class Benefit {}
class DefaultBenefit: Benefit {}
class Option{}
class DefaultLifeOption {}
class DefaultCarOption {}
Questions connexes
- 1. ScrollView ne défile pas lorsque vous faites glisser les boutons
- 2. Comment décrire des algorithmes lorsque vous faites des cas d'utilisation?
- 3. faire quelque chose lorsque vous faites défiler vers le haut et quelque chose d'autre lorsque vous faites défiler dans jquery
- 4. GUI Design: Comment faites-vous?
- 5. Obtenez le nombre total d'enregistrements lorsque vous faites
- 6. Comment gérez-vous DDD et EF4
- 7. Le clavier virtuel n'apparaît pas lorsque vous faites pivoter l'écran?
- 8. Comment faites-vous un assembleur?
- 9. Que faites-vous avec les variables d'environnement?
- 10. Comment gérez-vous les associations entre agrégats dans DDD?
- 11. Erreur lorsque vous faites git pull, incapable de résoudre
- 12. Que se passe-t-il lorsque vous faites glisser l'écran?
- 13. problème lorsque vous faites php memcache appelle dans une boucle
- 14. Hiding le bouton Ouvrir lorsque vous faites un Response.WriteFile - ASP.NET
- 15. déclarations de retour lorsque vous faites Extrait Méthode
- 16. DragMove ne fonctionne pas lorsque vous faites glisser rapidement?
- 17. NullReferenceException lorsque vous faites InsertOnSubmit dans LINQ to SQL
- 18. Lorsque vous faites UNION dans mysql, comment puis-je faire un où sur les résultats
- 19. Comment faire glisser le curseur jQuery uniquement lorsque vous faites glisser les gestionnaires?
- 20. Comment faites-vous une page d'erreur personnalisée?
- 21. Comment faites-vous du CMMI léger?
- 22. Comment faites-vous un Web.Config "Constant?"
- 23. Comment faites-vous le polymorphisme dans Ruby?
- 24. Comment faites-vous une jointure dans LinqToSQL?
- 25. Comment faites-vous les itérateurs imbriqués dans groovy?
- 26. Comment faites-vous mysqldump dans postgresql?
- 27. Comment faites-vous ALSA en mono?
- 28. Comment faites-vous une liaison de langue?
- 29. DDD et ASP.NET - où utilisez-vous les dépôts?
- 30. Draggable imbriqué à l'intérieur Draggable fait glisser les deux lorsque vous faites glisser l'enfant dans IE