Пользовательский интерфейс шаблона MVC / MV с операциями, которые могут завершиться - PullRequest
0 голосов
/ 04 июля 2018

Я работаю над приложением с бэкэндом C ++ (модели, бизнес-логика) и декларативным пользовательским интерфейсом в QtQuick.

Допустим, у меня есть ItemModel, заполненная запуском запроса к базе данных (в облаке). Эта модель затем отображается в пользовательском интерфейсе в виде списка. Теперь я хочу выполнить операцию, которая удалит элемент из списка. Каков наилучший способ справиться с этим?

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

С другой стороны, я могу сначала выполнить удаление базы данных, затем обновить модель на основе результата и затем обновить пользовательский интерфейс. Это гарантирует, что модель и представление всегда синхронизированы с базой данных, но потенциально могут привести к не отвечающему пользовательскому интерфейсу.

1 Ответ

0 голосов
/ 05 июля 2018

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

...