1. Главная
  2. Библиотека
  3. Программирование
  4. Весенний семестр 2024 Вопрос 1. Какие ошибки и нарушени...
Разбор задачи

Весенний семестр 2024 Вопрос 1. Какие ошибки и нарушения архитектуры MVVM есть в приведённом view model? Как исправить view model? Приведите полный исходный код.

  • Предмет: Программирование
  • Автор: Кэмп
  • #Разработка и тестирование программного обеспечения
  • #Архитектура программных систем
Весенний семестр 2024 Вопрос 1. Какие ошибки и нарушения архитектуры MVVM есть в приведённом view model? Как исправить view model? Приведите полный исходный код.

Условие:

Весенний семестр 2024
Вопрос 1. Какие ошибки и нарушения архитектуры MVVM есть в приведённом view model? Как исправить view model? Приведите полный исходный код.
```
public class FileSizeViewModel
{
public ICommand ShowSizeCommand { get; set; }
public long Size { get; set; }
public FileSizeViewModel()
{
ShowSizeCommand = new RelayCommand(_ => ShowFileSize());
}
private void ShowFileSize()
{
OpenFileDialog ofd = new OpenFileDialog();
if((bool)ofd.ShowDialog())
{
FileInfo info = new FileInfo(ofd.FileName);
Size = info.Length;
}
}
```

Решение:

Ошибка 1. Нарушение разделения ответственности.
Описание: В исходном коде во ViewModel напрямую создаётся диалоговое окно (OpenFileDialog), которое относится к View (пользовательскому интерфейсу). По правилам MVVM ViewModel не должна зависеть от каких-либо UI-элементов. Для корректного разделения логики и представления следует вынести взаимодействие с пользователем (показ диалога) в отдельный сервис.

Ошибка 2. Отсутствие уведомлений об изменении свойств.
Описание: Для корректного оповещения об изменении данных во ViewModel необходимо реализовывать интерфейс INotifyP...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое из следующих утверждений наиболее точно описывает одну из ключевых проблем в исходной реализации `FileSizeViewModel` с точки зрения архитектуры MVVM?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет