Question

J'ai des problèmes de réflexion dans une question de conception et j'ai pensé que la communauté peut être capable de me souligner dans la bonne direction. Je modélise un système de gestion des employés pour ma compagnie et je suis arrivé à une question de conception qui m'a soulevé.

Voici le scénario:

J'ai une classe d'employé que la classe des employés a une liste d'objets de bureau (où l'employé travaille et a travaillé). J'ai besoin de créer la capacité de transférer un employé entre les bureaux. Il y a des frais généraux supplémentaires pour la demande de transfert (approbations, critiques) mais à la fin des approbations, mon objet de transfert devrait provoquer la modification de la liste des offices d'objet employé.

J'utilise C #, EF4 et POCO pour mes objets. Je ne sais pas comment modéliser l'objet de transfert. Cela va être persisté pendant un certain temps et peut ne pas être achevé pendant quelques jours (les approbations doivent être complètes avant de continuer). L'objet de transfert doit connaître l'employé à modifier et au nouveau bureau de l'employé. J'ai l'impression que c'est une mauvaise conception pour rendre l'employé un enfant de l'objet de transfert et la modifier là-bas. Je me demande simplement si quelqu'un a des conseils sur la façon de modéliser cette exigence.

Était-ce utile?

La solution

Vous pouvez traiter le transfert en tant qu'objet complètement séparé - un employé.

Au minimum, il contiendrait les données suivantes: 1. L'identifiant unique d'un employé. 2. L'identifiant unique d'un transfert de bureau. 3. L'identifiant unique d'un transfert au bureau. 4. Un indicateur d'état pour la progression du transfert.

Ceci est un objet léger qui ne contient aucun autre objet - il les réfère par identifiant unique.Lorsque le transfert est traité, validez-vous que l'employé et le transfert vers des bureaux sont toujours valides, puis mettez à jour la collection de bureaux d'employés.

La seule condition préalable à cette solution est que l'employé et les bureaux doivent exister avant la création du transfert.

Autres conseils

On dirait que le transfert n'est pas un objet, c'est un flux de travail.Regardez sur Windows Workflow Foundation ... Voici un Bon exemple QuickStart.

Si vous pensez à la responsabilité de l'objet de transfert, il est de gérer le transfert d'un employé à un autre bureau.Je concevrais cela avec l'objet de transfert étant séparé de l'employé et du bureau, mais en faisant référence à chacun.L'objet de transfert aurait probablement une énumération de valeurs d'état de l'approbation et d'atteindre un état de fin (approbation annulée ou finale), l'objet de transfert pourrait effectuer l'action d'associer l'employé avec le nouveau bureau et se marquer comme terminé.Ce n'est pas une mauvaise conception pour que l'objet de transfert ait des références aux autres objets.La relation entre transfert et employé (ainsi que transfert et bureau) dans ce cas une relation "utilise".

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