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