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.