Repository Pattern Quick Explanation | Design Pattern Quick Reference Guide | Design Patterns Tutorial

The pattern virtualizes storage of entities in a persistent medium, such as a database or as XML. For example, a repository may expose data held in the tables of a database as strongly typed Customer and Order objects rather than data sets or data rows. It effectively hides the storage implementation from the application code, and allows the use of a common set of methods in the application without requiring knowledge of the storage mechanism or format. Often, the repository uses a series of providers to connect to the source data.

Figure 4 - The Repository Pattern