Источник данных, репозиторий, ViewModels и IoC-контейнер.Действительно ли нужен репозиторий? - PullRequest
1 голос
/ 17 января 2012

У меня есть поток, подобный этому:

Repository вводится с Datasource. ViewModel вводится с Repository.

Поскольку существует постоянный поток Предметов и Мутаций (удалений, изменений), которые необходимо преобразовать в пользовательский интерфейс, я не храню коллекцию предметов в Репозитории. Поэтому у меня появилось хранилище, которое передает только элементы между источником данных и моделями представления.

Я всегда понимал, что вам не следует напрямую использовать источник данных на уровне пользовательского интерфейса (ViewModels находятся на моем уровне пользовательского интерфейса). Но так ли это, если вы используете внедрение зависимостей? Я использую шаблон Repository для использования или это просто приводит к накладным расходам? (Прямо сейчас кажется, что так и есть.)

Изначально я реализовал репозиторий для разделения пользовательского интерфейса и источника данных, но обнаружил, что DI отлично работает без репозитория.

1 Ответ

2 голосов
/ 17 января 2012

Возможно, вы захотите взглянуть на некоторые сообщения в блоге Орен Эйни (он же Ayende Rahien)

Зло уровня абстракции хранилища

или

Хранилище - новый синглтон

Чаще всего репозитории представляют собой просто "нагреватели потока". Они ничего не делают, кроме переадресации вызовов и результатов и просто добавляют накладные расходы.

Кстати: если вы должны или не должны использовать репозитории, это никак не связано с внедрением зависимостей!


Обновление

Орен только что опубликовал новое сообщение на эту тему .

...