2016-09-20 1 views
0

À mon système quand une nouvelle transaction ajouté au système, cette demande contient les informations suivantesEst-ce une bonne pratique d'extraire une requête en plusieurs commandes?

  • A) le client qui a fait la transaction
  • B) si la transaction sera payée par versements, et la fréquence des versements (mensuel, evvery 15 jours, etc.)

aussi, si la transaction ne sera pas payée par versements les données d'analyse doivent obtenir des informations actualisées (clair dans du mois en cours, etc.).

Alors, quand une nouvelle transaction soumise par l'utilisateur qui suit doit être fait

  • 1) Ajouter un nouveau client si le client dans la demande n'existe pas
  • 2) Ajouter la nouvelle transaction dans la base de données

    et s'il y a des versements

  • 3) ajouter les versements dans la base de données

autre

  • 4) mettre à jour les données d'analyse

Ainsi, la solution est à mon contrôleur AddnewTransactionController extraire la demande en deux commandes distinctes AddNewClientCommandAddNewTransactionCommand et invoquer les gestionnaires de commandes associés AddNewClientCommandHadlerAddNewTransactionCommandHandler .

Les AddNewTransactionCommandHandler auront également des services de domaine injectés comme UpdateanalysisData.

Est-ce que ce qui précède est une bonne solution d'un point de vue architectural?

Répondre

1

Je m'attendrais normalement à ce que cette approche soit implémentée en tant que processus plutôt qu'en tant que collection de commandes.

Le client s'engage à une commande, c'est-à-dire qu'une entité distante en dehors des limites de notre solution nous offre la possibilité de gagner de la valeur commerciale. La priorité immédiate est donc de saisir cette opportunité. Vous écrivez donc cette opportunité dans votre magasin durable et publiez un événement de domaine.

En réponse à l'événement de domaine, un certain nombre d'autres commandes peuvent maintenant être déclenchées (extraction des données dont elles ont besoin à partir de l'événement de domaine ou de la représentation de l'opportunité dans le magasin).

+0

vous avez utilisé le mot 'opportunité' deux fois. Que veux-tu dire par là? – dios231

+0

Le client essaie de vous donner de l'argent. Donc (a) vous le prenez; (b) vous le prenez la première fois. Vous ne devriez pas permettre à votre saut de cerceau interne d'interférer avec le client en vous donnant de l'argent. – VoiceOfUnreason