Здравствуйте, Ed.ward, Вы писали:
EW>Здравствуйте, m a d, Вы писали:
MAD>>Здравствуйте, Ed.ward, Вы писали:
EW>>>Здравствуйте, m a d, Вы писали:
MAD>>>>Доброго времени суток!
MAD>>>>Задал сначала этот вопрос на хабре, но добрые хабражители его моментально отхабрили. Прошу прощения, если действительно спрашиваю глупость.
MAD>>>>Дано: приложение на C#/WinForms, которое пытается следовать паттерну MVP.
MAD>>>>View представляет собой форму с гридом, в гриде есть данные. Также есть кнопочки, которые с этими данными что-то делают. View не знает, что. Он просто генерит по нажатию кнопок события, которые обрабатываются презентером.
MAD>>>>Задача: при закрытии формы необходимо понять, были ли изменения в данных, и если были, то спросить, сохранять ли их.
MAD>>>>2. Спрашивать о сохранении из презентера (только что пришел в голову более конкретный вариант: из презентера вызвать IView.ShowSaveDialog() c возвратом DialogResult)
EW>>>Именно так. Этот подход позволит покрыть автоматическими тестами логику сохранения данных.
EW>>>View только говорит, что хочет закрыться. Презентер знает, что делать по закрытию, спрашивать/не спрашивать, сохранять/не сохранять, и в конце концов а закрывать ли View.
EW>>>Ed.ward
MAD>>Спасибо за ответ!
MAD>>Единственное, что меня смущает — это то, что разбор DialogResult тянет в Presenter зависимость System.Windows.Forms. Закрыть на это глаза? Написать свой DialogResult с океями и кэнсэлами?
EW>Я написал свой и конвертилку
Считаю что зависимость опасней, чем дополнительная сущность.
EW>Ed.ward
В итоге я так и сделал =) Спасибо!