2009-12-16 6 views
1

Nous développons un système basé sur DDD. Pour un module particulier (l'éditeur) de ce système, nous recevrons des données d'autres objets et y effectuerons des transformations, puis nous écrirons des fichiers de données.Conception pilotée par domaine - module centré sur les données dans un système DDD plus grand

La conception DDD en cours de développement a de nombreuses classes de collection personnalisées pour les données ... tous ces objets contiennent simplement des lignes de données, mais ils ont des noms de classe et de propriété distincts. Y a-t-il une bonne stratégie ou un modèle pour faire face à cette situation? C'est à dire. un moyen d'appliquer la même logique à tous ces objets.

Autres détails: Par exemple, nous pouvons avoir une classe DataType123 qui contient une collection d'objets Data123Row. Puis une classe Data456 de type contenant une collection d'objets Data456Row. Disons qu'il y a 15 objets différents comme ceux-ci. En raison des idées de DDD, ils ont des noms de domaine, mais ils sont en réalité tous des données plus ou moins tabulaires, c'est-à-dire des lignes et des colonnes. Nous essayons de créer un service générique qui peut tout de même les traiter, même s'il s'agit de classes techniquement différentes.

Répondre

1

À une supposition, il ressemble à service (DDD) et Adapter motifs (GOF) serait un bon point de départ.

Comme la transformation de données ne sont pas un domaine activité centrée, appelez via services (qui à son tour utiliser les adaptateurs pour transformer les données)

0

Votre question est un peu floue. DDD est tout au sujet du modèle de dépôt pour persister vos objets de valeur. Cherchez-vous d'autres modèles pour faire face à quelque chose en particulier? Ce n'est pas clair ce que vous essayez d'accomplir ici.

1

Il me semble que vous avez besoin d'une base de DataType class et une classe de base DataRow avec laquelle vos algorithmes de transformation fonctionnent.

Ensuite, utilisez un modèle Factory pour construire vos objets.

Si vous utilisez C#, vous pouvez utiliser la réflexion pour accéder à toutes les propriétés de manière générique.

Ou si vos algorithmes de transformation doivent accéder à des noms de propriétés spécifiques, alors votre Usine (s) pourrait gérer la construction de DataType123, DataRow123 et TransformationAlgorithm123.

Questions connexes