2013-02-19 3 views
0

Это может быть глупый вопрос, но с моими текущими поисками я нашел в основном информацию о представлении данных и взаимодействии между презентатором и представлением, но очень мало о Модели и Презентаторе.Где хранятся файловые операции в MVP?

В принципе, скажем, у меня есть приложение C#, и он открывает CSV-файл, который представляет собой массив чисел 5 на 5. Теперь, если бы я хотел загрузить этот массив 5 на 5 CSV в массив ints, где это обрабатывается в грандиозной схеме?

Это моя нынешняя идея следовать MVP, но, пожалуйста, исправьте меня, если я ошибаюсь (или подтвердите, что я прав, если мне удастся быть).

  1. Пользователь нажимает кнопку, чтобы загрузить файл.
  2. View загружает showOpenDialog(), чтобы пользователь мог выбрать файл.
  3. После того, как пользователь щелкнет в этом диалоговом окне, View, отправляет событие ведущему, содержащему это имя файла.
  4. Ведущий принимает это имя файла, обрабатывает открытие файла и разбирает его в массив 5 x 5 int.
  5. Затем ведущий предоставляет этот массив Int в Model через событие. Затем модель сохраняет этот массив.
  6. Модель дает событие, в котором говорится, что данные были изменены.
  7. Ведущий прослушивает и обрабатывает это событие, помещая этот массив 5 x 5 int в DataTable.
  8. Ведущий поднимает событие, заявляя, что у него новый DataTableready.
  9. Вид прослушивает и обрабатывает это событие и обновляет dataGridView информацией, предоставленной DataTable.

Мое понимание MVP становится мутным примерно на шаге 5. Это то, как это должно произойти, или я неправильно истолковал, что каждый компонент делает в MVP?

ответ

2

Ваш способ использования событий в MVP интересен .. однако я вообще не сталкивался с этим.

Из моего опыта, это рабочий процесс:

  1. Кнопка нажата в виду
  2. View показывает диалоговое
  3. View хранит имя файла в свойстве
  4. View вызывает метод Presenter (например, LoadFile)
  5. Presenter использует интерфейс для получения имени файла из свойства
  6. Ведущий либо a) использует Сервис для выполнения l oading или б) загружает файл сам
  7. Модель построена либо с помощью службы или Presenter
  8. модель передается обратно для просмотра с помощью метода LoadFile
+0

Это было не так много «мой путь» как это была «моя догадка». В качестве последующего вопроса, когда более целесообразно использовать службу для загрузки файлов, чем заставить сам презентатор загружать их самостоятельно? – Xantham

+0

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

Смежные вопросы