MVP/MVVM - Фильтрация списков, кто несет ответственность?

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

области C, от которого Вы не будете зависеть очень:

  • Адресная арифметика с указателями и массивы. Я не использовал массивы C вообще.
  • струны до. Строки Objective C делают задание, более хорошее и более безопасное.
  • Ручное управление памятью, если Вы используете GC в Obj-C 2.1. Я настоятельно рекомендую этот маршрут для скорости разработки и причин производительности.
10
задан RoelF 16 October 2009 в 09:35
поделиться

5 ответов

ViewModel, без всяких сомнений. Предотвращение кода программной части - конечная цель шаблона - фактически, ViewModel сам является кодом представления.

например: для разных представлений может потребоваться различная фильтрация

Различные представления должны иметь разные модели представления. ViewModel - это в основном (несколько более) объектно-ориентированный подход к файлам кода программной части.

Что касается CollectionView: вы можете определить CollectionViewSource в представлении XAML, а затем связать его свойства сортировки и фильтрации с ViewModel. Это должно держать контроль в ViewModel и CollectionView, но я считаю, что это чрезмерная инженерия.

6
ответ дан 3 December 2019 в 23:13
поделиться

Вы можете проверить эту статью в моем блоге, где я использую методологию MVVM для фильтрации коллекции элементов. Я думаю, что это определенно ответственность класса VM.

4
ответ дан 3 December 2019 в 23:13
поделиться

Нет правильного технического ответа. Цель шаблона состоит в том, чтобы разделить проблемы функциональности и эстетики на том основании, что художественный дизайнер не понимает, как реализовать функциональность, а пользовательские интерфейсы сложно тестировать.

Но если вы можете параметризовать фильтрацию на что-то очень простое, например, текстовое свойство под названием «Регион», которое может быть установлено на «Европа», «Северная Америка», «Aisa» и т. д., что довольно легко понять и которое можно независимо тестировать. Это позволяет вам немного контролировать функциональность (в очень ограниченном смысле) в представлении. Если это имеет значение для ваших усилий, сделайте это. Если нет, не делайте этого.

И в конечном итоге, если попытка применить этот шаблон заставляет вас задуматься о философских различиях,

1
ответ дан 3 December 2019 в 23:13
поделиться

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

Функциональность фильтрации является общей и не привязана к представлению как таковому. Но если для другого представления потребуется другая фильтрация, вы должны увидеть это как дополнительную функциональность, поддерживаемую моделью представления.

3
ответ дан 3 December 2019 в 23:13
поделиться

Я согласен с вами, что это Беспокоит то, что есть утечка технологии View в VieModel. В аналогичном ключе я использую объект RelayCommand в своих ViewModels, который использует System.Windows.Input.

Тем не менее, по всем указанным здесь причинам, я думаю, что ViewModel является правильным выбором дизайна для этого носителя (wpf / silverlight ), хотя и не совсем идеально.

0
ответ дан 3 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: