- Acts like an in-memory collection
- Decouples business modules from underlying data store implementation and the data scheme.
- Works with high levels of abstractions and aggregate roots.
Data Access Objects (DAO) Pattern
- Unlike repository pattern, does not hide the fact that behind the interface is a data table.
- Typically created one DAO for each table in the database.
- Pairs well with Active Record and Transaction Script.
Unit of Work Pattern
- Maintains a list of business objects that have been changed by a business transaction.
- Coordinates the persistence of the changes
- Ensures data integrity, if an issue arises through persisting, all changes should be rolled back to ensure the data remains in a valid state.
Marker Interface Pattern
- Acts as metadata for a class and methods
Data Concurrency Control