Gim*_*mly 9 architecture model-view-controller mvvm
假设我们有一个具有分层架构的应用程序.在视图中我们使用MVC或MVVM.该模型被视为域,它具有很好的业务逻辑部分.
现在让我们假设我们在模型中有一个需要一些时间的方法.例如,必须对对象的每个项目进行复杂的计算或处理.
在UI中,我们希望显示进度条和显示当前计算步骤的文本(例如,包含所有过程历史记录的列表框).
你会怎么做?如何从模型中发送进程进度信息以及如何连接Controller或ViewModel以便更新进度?
我经常以下面的方式实现这一点.我的业务层流程需要很长时间才能运行,每隔一段时间就会引发事件,以表明它正在达到特定的"里程碑".您可以决定通过事件发出信号的里程碑以及有多少里程碑.如果您的耗时过程是一个简单的循环,您可以选择,例如,循环中每10%的项目一次又一次地引发相同的事件.如果它是具有不同阶段的过程,您可以选择在每个阶段完成时引发不同的事件.
现在,您的表示层会订阅这些事件并执行相应的操作,更新进度条,文本或其他内容.
这种机制很好,因为:
希望这可以帮助.
归档时间: |
|
查看次数: |
1787 次 |
最近记录: |