Finora ho creato applicazioni che astraggono le operazioni dell'entità dati dietro l'utilizzo di Repositories
. Ciascuno di essi incapsulerebbe il dominio che corrisponde alla loro entità definita. Ad esempio: UserRepository
incapsulerebbe la logica di dominio relativa all'entità User
, come changePassword(old,new)
, createAccount(email,password
, retrieveAllFriendsForUser(id)
e così.
Ma ci sono casi in cui hai bisogno di più risorse per interagire e astrarre quella logica in un repository di un'altra entità sembra maleodorante. Ad esempio: l'acquisto di un Item
richiederebbe di creare un Quotation
, creare un Payment
, riducendo il ItemQuantity
da Inventory
e così via; gestire tale operazione in ItemRepository
significherebbe che l'implementazione dipenderebbe da QuotationRepository
, PaymentRepository
, ecc ...
Ho letto in precedenza sugli schemi Business Facade e dell'unità di lavoro , ma dopo averli nuovamente letti sembra che non siano mirati a questo specifico multiplo interazione delle risorse , ma piuttosto mirato a accesso semplificato a blocchi di codice e gestione di operazioni atomiche , rispettivamente.
Che cos'è un modello di progettazione per la gestione dell'interazione di più risorse e, se possibile, un codice di esempio rapido che lo integra.