Question

Mon ORM génère des objets reflétant la structure de la table de base de données. Ces objets sont extensibles, donc je peux ajouter de nouvelles propriétés et méthodes. Ces objets ne contient aucune logique de persistance, donc je suppose qu'ils sont ignorants persistants.

Dois-je utiliser cet objet comme mes objets de domaine ou dois-je créer de nouveaux objets pour le modèle des domaines principaux?

En tant que pro pour créer un nouvel objet, je considérerais que lorsqu'une table de base de données changera, elle ne cassera pas l'application.

En tant que con pour créer un nouvel objet, je considérerais le mappage supplémentaire et la complexité plus de complexité dans l'application.

Était-ce utile?

La solution

Ma réponse est que cela dépend. Si vous avez beaucoup de logique complexe assis avec de nombreuses entités, vous devez créer une autre couche de domaine, mais pour les objets qui n'ont pas de logique et vous servent simplement de port de base de données, ne vous embêtez pas à créer un objet séparé provoquer son dénué de sens.

Pour résumer, si un changement de base de données entraînera un changement de domaine, ne vous séparez pas si ce n'est pas le cas, séparez-vous.

Autres conseils

Au lieu d'utiliser votre ORM pour retirer les données de la DB sous une forme qui se rapporte à la façon dont la DB voit les données créer vos objets de domaine pour faire correspondre réellement votre domaine, puis utiliser votre ORM pour persister vos objets de domaine dans la base de données de toutes les manières Besoins de base de données.

En d'autres termes, vous le faites en arrière. Obtenez d'abord le modèle de domaine, puis laissez votre orm vous soucier de la façon de les persister à la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top