Я использую XamarinForms и Prism для MVVM с Unity в качестве моего контейнера IoC.
Я выполняю рефакторинг тонны дубликатов кода View и ViewModel, над которыми работал предыдущий сотрудник.То, что они сделали, по сути вырезали и вставляли чрезвычайно сложные View и ViewModel.Мне нужно было что-то изменить в них, и мне пришлось делать это 5 раз из-за этого кода спагетти.По сути, это то, как выглядит представление:
5 экземпляров этих CardViews и их различные Viewmodels имеют основной заголовок, 3 метки и 3 значениякоторые идут с ярлыками.Значения извлекаются с использованием различных повторных вызовов (все используют различные параметры для их извлечения и обработки результатов вызовов тоже).
У меня вопрос: какие шаблоны я должен использовать, чтобы упростить эти 5 видов и моделей представления, предпочтительно только один файл, который мне нужно изменить?Грубо говоря, я думаю, что у меня должна быть ViewModel, которая предлагает весь текст, значения и функции, необходимые для получения этих удаленных данных.Но я ломаю голову над всеми различными подходами, которые мне кажутся доступными (интерфейсы ViewModel, внедрение зависимостей, методы регистрации представления шаблона с разными экземплярами одной и той же ViewModel и т. Д.).
Что особенно усложняет мою проблему, так это то, что эти 5 различных представлений разделены между модулями Prism (т.е. проектами .NET).Я понимаю необходимость в них, но они, кажется, только добавляют к проблеме дублирующего кода, который в основном делает то же самое.Может быть, они должны содержать логику для спокойных вызовов и обработки?Но как это согласуется с моей проблемой ассоциации ViewModel / View сверху?
Я буду продолжать исследовать лучший способ сделать это, но я просто хотел знать, сможет ли кто-нибудь направить меня в направлении лучшей практики?