Repository & Unit of Work — Simple#
classDiagram
class UseCase {
+place(order)
}
class OrderRepository {
<<interface>>
+findById(id)
+save(order)
}
class SqlOrderRepo
class InMemoryOrderRepo
class UnitOfWork {
+begin()
+commit()
+rollback()
}
UseCase --> OrderRepository
OrderRepository <|.. SqlOrderRepo
OrderRepository <|.. InMemoryOrderRepo
UseCase --> UnitOfWork
A Repository is a collection-like interface for one aggregate type. A Unit of Work scopes one logical transaction across multiple repositories. Together they hide persistence from the domain.