1.5 KiB
1.5 KiB
Le pattern de Unit Of Work permet de gérer des instances ayant une corrélation et de s'assurer de la persistance (et cohérence) de ce bloc d'informations au sein d'une même transaction. C'est notamment implémenté au travers de l'interface ITransaction
dans NHibernate ou dans la classe DataContext
de Linq2SQL.
D'après un article sur MSDN, l'implémentation d'une interface UnitOfWork
ressemblerait à ceci:
public interface IUnitOfWork {
void MarkDirty(object entity);
void MarkNew(object entity);
void MarkDeleted(object entity);
void Commit();
void Rollback();
}
Pourquoi? Pour pouvoir marquer une instance comme étant modifiée ou supprimée ou nouvelle. Les deux dernières méthodes permettent de réaliser la transaction, ou d'effectuer un rollback si quelque chose a mal tourné. En fonction des flags initialisés sur une instance, cela permet de lancer les méthodes CRUD classiques pour ce type d'objet.