Я новичок в Unity IoC (DI в целом), прочитал много документов и посмотрел несколько часовых видеороликов на канале 9. Даже после всего этого я не нашел ни одного примера, демонстрирующего набор функций в находясь в поиске.
Все онлайн показало, что вы можете создать репозиторий и зарегистрировать его в контейнере единства. Затем я могу внедрить репозиторий в мои конструкторы моделей представлений. В моем конкретном приложении мне нужно поддерживать ParseCloud, Box, DropBox и OneDrive, а также несколько реализаций интерфейса. Поэтому я планировал создать четыре репозитория, по одному для каждого сервиса.
Имеет ли смысл регистрировать в Unity одну абстрактную фабрику репозиториев, которую модели представления могут использовать для получения правильного репозитория в зависимости от того, для чего настроено приложение?
Еще одна вещь, которую поддерживает приложение (приложение задач), — это несколько реализаций ITask, поэтому у меня есть BasicTask, GTDTask, GoogleTask. Поэтому я подумал, что мне понадобится метод репозитория, который мог бы обрабатывать каждую реализацию и хранить реализацию в правильном облачном сервисе. Как мне достичь этой абстракции с помощью Unity? Лучше всего просто зарегистрировать все типы ITask и иметь абстрактный репозиторий, определяющий, какой тип принадлежит какому репозиторию, на основе службы, в которую вошел пользователь?
Я хочу, чтобы модели просмотра страниц не зависели от реализации задачи. Я буду использовать DataTemplates, у которых целевой тип будет назначен определенному типу задачи. Таким образом, пользовательский интерфейс может оставаться слабо связанным, а мои модели представления не тесно связаны со всеми моими репозиториями или реализациями.
Спасибо за любую помощь.
Джонатон