Aller au contenu

Patrons de conception/Unité de travail

Un livre de Wikilivres.
Patron de conception
Catégorie : EntrepriseComportement objet-relationnel
Nom français : Unité de travail
Nom anglais : Unit of Work
Maintenance d'une liste des objets affectés par une transaction commerciale et coordination de l'écriture des modifications et la résolution des problèmes de concurrence.


Une unité de travail maintient une liste des objets affectés par une transaction commerciale, coordonne l'écriture des modifications et la résolution des problèmes de concurrence.

Lorsque vous extrayez des données d'une base de données, il est important de garder une trace de ce que vous avez modifié ; sinon, ces données ne seront pas réécrites dans la base de données. De même, vous devez insérer les nouveaux objets que vous créez et retirer tous les objets que vous supprimez.

Vous pouvez modifier la base de données à chaque modification de votre modèle d'objet, mais cela peut entraîner de nombreux appels de base de données très petits, ce qui finit par être très lent. De plus, cela nécessite que vous ayez une transaction ouverte pour toute l'interaction, ce qui n'est pas pratique si vous avez une transaction commerciale qui s'étend sur plusieurs demandes. La situation est encore pire si vous devez garder une trace des objets que vous avez lus afin d'éviter les lectures incohérentes.

Une unité de travail garde une trace de tout ce que vous faites au cours d'une transaction commerciale qui peut affecter la base de données. Lorsque vous avez terminé, elle détermine tout ce qui doit être fait pour modifier la base de données à la suite de votre travail.