@DarkByte2015

Может ли Callback выступать в роли ViewModel-и?

Скажите пожалуйста Callback на клиенте может выступать в роли ViewModel-и с точки зрения MVVM? Просто все его методы они получаются как бы события которые вызываются с сервера. В то же время никакую особую логику свойственную только сервису в него не впихнешь. (во всяком случае в моей задаче) Так почему бы и нет? Что толку что я в нем насоздаю событий на каждую функцию и буду ловить их во ViewModel-и? Может проще просто использовать сразу его как ViewModel? Ну если (как обычно) кому то что-то не понятно будет (я уже предчувствую) то вот вам пример. Обычный чат. На калбэке вызываются функции вроде: клиент подсоединился / клиент отсоединился, получено приватное / публичное сообщение и т.п. Они тупо как события. Никаких особых действий тут в калбэке не происходит. Просто добавляются сообщения в отображаемый список или добавляет / убирается пользователь из списка подключенных.
  • Вопрос задан
  • 253 просмотра
Пригласить эксперта
Ответы на вопрос 2
VM это сущность которая предназначена для передачи/отображения информации. Она может содержать логику которая поможет это сделать. Судя по описанию вы хотите добавить некий кусок логики ответсвеный за нотификацию в VM, на мой взгляд это плохая идея. Думаю все это должно быть в бизнесе, а там уже можно и колбеки и события.
Ответ написан
@Hydro
C#/.NET Developer
В данном случае не согласен с пользователем Станислав Силин .
Если всё так примитивно, как Вы описываете, то вполне возможно биндиться сразу на объект коллбека и не парить себе мозг.
Слоеность по бизнесу и DAL делается для того, чтобы упростить разработку, поддержку и отладку. Если нечего упрощять, поддерживать и отлаживать, то смысла дублировать логику коллбек объекта в другом классе с названием BlablablaViewModel - нет.

To Станислав Силин: Сущность для отображения - это View, ViewModel - это сущность, которая открывает данные модели для View и позволяет выполнять над этими данными действия (ICommand).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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