Identity Map Pattern
-assigning object identifiers (OIDs) to persistent objects held in memory
-mapping these OIDs to memory addresses of these objects
-mapping other identifying attributes of objects to their OIDs
-providing a single registry of object identifiers that other objects in the program can use to access objects by their OIDs
Data Mapper Pattern
-so that the program knows if a required object is in memory cache or it has to be retrieved from the database
-also knowing if an object in memory is clean or dirty.
Lazy Load Pattern
-“an object that doesn’t contain all of the data you need but knows how to get it”
Unit of Work Pattern
-so that the program knows which objects in memory are embraced by a business transaction
-“matains a list objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems”