Шаблон репозитория против ORM

Что хорошего в шаблоне репозитория, когда у вас есть ORM?

Пример. Предположим, у меня есть следующие (вымышленные) таблицы:

Таблица: пользователи

pk_user_id
fk_userrole_id
username

Таблица: роли пользователей

fk_userrole_id
role

Теперь с помощью orm я могу просто поместить это в файл модели:

$user = ORM::load('users', $id);

Теперь $user уже является моим объектом, который можно было бы легко загрузить лениво:

(было бы еще лучше, если бы вещи автоматически складывались в единственное/множественное число)

foreach ( $user->userroles()->role as $role )
{
    echo $role;
}

Теперь с шаблоном репозитория мне пришлось создать репозиторий для пользователей и один для ролей. Репозиторию также нужны всевозможные функции для извлечения данных для меня и их хранения. Кроме того, он должен работать с моделями Entity.Так что я должен создать все это тоже.

Для меня это выглядит так, как будто многие вещи делают... Когда я мог просто получить данные, как я описал выше, с помощью ORM. И я мог бы так же просто сохранить его:

ORM::store($user);

В этом случае в базу данных будет сохраняться не только пользовательский объект, но и любые изменения, внесенные мной в объект «Роли». Так что никакой дополнительной работы, как с шаблоном репозитория, не требуется...


Итак, мой вопрос в основном таков: зачем мне использовать шаблон репозитория с ORM? Я видел руководства по использованию этого шаблона (например, с Doctrine). Но на самом деле это просто не имеет для меня никакого смысла... Любое объяснение его использования в сочетании с ORM..??

6
задан w00 14 April 2012 в 17:01
поделиться