Repository Pattern

  • 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