Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 具有可能失败操作的MVC/MV模式UI 我在QtQuick中使用C++后端(模型、业务逻辑)和声明性UI进行应用。p>_User Interface_Design Patterns_Model View Controller - Fatal编程技术网

User interface 具有可能失败操作的MVC/MV模式UI 我在QtQuick中使用C++后端(模型、业务逻辑)和声明性UI进行应用。p>

User interface 具有可能失败操作的MVC/MV模式UI 我在QtQuick中使用C++后端(模型、业务逻辑)和声明性UI进行应用。p>,user-interface,design-patterns,model-view-controller,User Interface,Design Patterns,Model View Controller,假设我有一个ItemModel,通过对数据库(在云中)运行查询来填充。然后,该模型在UI中显示为列表。现在我想做一个从列表中删除项目的操作。最好的处理方法是什么 我可以在用户删除项目后立即更新UI,然后将其从模型中删除,这会触发从数据库中删除项目的操作。这很好,直到操作因某种原因失败,并且我的模型不再与数据库匹配 另一方面,我可以先执行数据库删除,然后根据结果更新模型,然后更新UI。这可以确保模型和视图始终与数据库同步,但可能会导致UI无响应。您应该先执行此操作,然后在出现错误时显示错误(并确保

假设我有一个ItemModel,通过对数据库(在云中)运行查询来填充。然后,该模型在UI中显示为列表。现在我想做一个从列表中删除项目的操作。最好的处理方法是什么

我可以在用户删除项目后立即更新UI,然后将其从模型中删除,这会触发从数据库中删除项目的操作。这很好,直到操作因某种原因失败,并且我的模型不再与数据库匹配


另一方面,我可以先执行数据库删除,然后根据结果更新模型,然后更新UI。这可以确保模型和视图始终与数据库同步,但可能会导致UI无响应。

您应该先执行此操作,然后在出现错误时显示错误(并确保出现错误的可能性极小)。如果这不是关键任务的话。如果是,则使用不同的UI模式可能更合适