Основная идея шаблона Repository заключается в том, что вы получаете способ запрашивать и сохранять объекты без необходимости знать, как они хранятся.
Это полезно, поскольку вы можете отделить свой пользовательский интерфейс и модель потока от того, как объекты хранятся, кэшируются и извлекаются. Это дает большую возможность независимо тестировать уровни пользовательского интерфейса и нижние уровни, работать с ними независимо и обслуживать их независимо.
Большинство зрелых сред объектно-реляционного сопоставления (ORM) позволяют вам делать это.