Вопрос

Возможна ли инъекция модели на лету? Другими словами, если я попрошу модель типа iPhotomodel, я должен получить одну из его реализаций на основе текущего состояния представления. Если я смотрю на пользовательскую страницу, я должен получить конкретную реализацию этой модели. Если я смотрю на страницу Location, я должен получить реализацию конкретного местоположения.

В настоящее время единственный способ, который я вижу, - это внедрение команды, которая указывает отображение модели, с конкретным, основанным на современном состоянии представления ...

что-то типа...

injechor.mapvalue (iPhotoviewModel, injector.getInstance (userPhotoViewModel)) или Injector.MapValue (iPhotoViewModel, injector.getInstance (locationPotoViewModel))))

Это лучший способ? Я действительно не хочу вводить много логики связи за пределами контекста, но ...

Это было полезно?

Решение

Вот как я это делаю, и я считаю, что это рекомендуемый способ. На самом деле, я думаю, что многие передовые пользователи Robotlegs разбивают большинство сопоставлений на команды для удобства, повторного использования и облегчения чтения программы-даже если команда запускается только один раз при запуске. Я использовал его для таких вещей, как заменять фиктивные услуги на реальные услуги-команда, которая отображает зависимости, отличается, но все остальное одинаково.

Я не вижу в этом как «так много» логики связи. Команда просто настройка программы на основе текущего состояния приложения. На самом деле нет большой разницы между использованием команды для изменения состояния инжектора по сравнению с вашим собственным состоянием модели.

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

Hth;

Эми

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top