Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Unit of Work vzor z P of EAA (Fowler) 1
2
Unit of Work – úvod Problém Příklad: ORM Jak na to?
Jak efektivně udržovat konzistentní stav lokálních se vzdálenými objekty? Příklad: ORM Kdy posílat změněný stav doménového objektu? Kdy ho mazat apod.. Jak na to? Udržovat si seznam lokálních objektů, u kterých byl změněn stav během jedné business transakce a pak vše hromadně vyřešit Manager 2
3
Unit of Work – příklad 3
4
Unit of Work – účastníci
Klient Vyvolá změnu doménového objektu Doménový objekt Registruje se u Unit of Work při vzniku Změny hlásí Unit of Work Unit of Work objekt Uchovává seznam dotčených objektů Při ukončení business transakce se postará o dávkové odeslání změn Postará se o problémy s referenční integritou, pokud se o ně neumí postarat vzdálený systém (databáze) Zajistí pořadí změn 4
5
Unit of Work – implementace
Implementujeme metody Unit of Work na registrování doménových objektů 5
6
Unit of Work – implementace
Potřebujeme zpřístupnit Unit of Work všem doménovým objektům Nemá smsl dávat ho všem jako argument Jelikož všechny operace jedné business transakce probíhají z jednoho vlákna, můžeme objekt Unit of Work svázat s daným vláknem Pokud již existuje objekt, který uchovává session objekty, můžeme Unit of Work přiřadit sem 6
7
Unit of Work – implementace
Předkovi doménových objektů nastavíme metody, kterými registruje změny k Unit of Work 7
8
Unit of Work – implementace
U operací doménových objektů vyvoláme registraci změny 8
9
Unit of Work – implementace
Zajištění vyvolání commitu změn po dokončení business transakce Automaticky (implicitně) Manuálně (explicitně) 9
10
Unit of Work – použití Ulehčení práce při používání databáze pomocí ORM Lze použít i u jiných systémů využívajících transakce 10
11
Unit of Work – shrnutí Zpřehledňuje kód
Zjednodušuje práci s odesíláním změn do databáze Může řešit problémy s referenční integritou Související vzory Singleton 11
12
Unit of Work – shrnutí Prevence 12
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.