Question

Tout en développant un modèle de domaine hypothétique, je me suis demandé si la meilleure approche pour relier des objets de domaine serait de faire en sorte qu'un objet de domaine parent contienne un pointeur (l'identifiant de l'enfant) ou s'il s'agirait d'une meilleure approche. utiliser les objets enfants pour construire un composite dans l'objet parent.

Je peux voir les avantages et les inconvénients de chaque approche, principalement un compromis entre taille et complexité, ce qui en découle. J'aurais tendance à pencher davantage en faveur d'une approche relationnelle identifiant, car je ne prévois pas la nécessité de faire un chargement paresseux.

Bien qu'ils ne soient pas directement liés, les objets de domaine sont de simples POCO (équivalents .NET de POJO). Ils sont explicitement marqués en tant que sérialisables, car il y a de fortes chances pour qu'ils passent éventuellement entre des domaines d'application. À mon avis, LINQ rend l’approche des identificateurs relationnels viable, et je ne l’envisagerais pas du tout si LINQ n’était pas disponible.

Toute pensée serait appréciée!

Modifier: Deux autres idées pourraient m'encourager à adopter une approche basée uniquement sur un identifiant. Le premier serait que la politique de mise en cache des objets. Il est tout à fait possible qu'un objet parent et un objet enfant aient des valeurs de durée de vie différentes, définies par leurs stratégies. La seconde serait que la base de référence puisse limiter la réutilisation d’objets, dans la mesure où le même enfant pourrait être détenu par plusieurs parents - dans le cas de données réutilisables. Ces deux éléments concernent également la taille globale des objets sérialisés.

Était-ce utile?

La solution

J'utilise les deux sur mes POCO. Je les génère avec une liste d'enfants sur la classe parent et une instance parent sur la classe enfant.

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