Model 其实并不是什么新的概念,它最初是由 [Trygve Reenskaug](() 于1979年定义的,作为 MVC 体系结构的一部分。
“Model 对表示状态、结构和用户心理模型负责。”
“View 负责展示它从一个或者多个 Model 获取的数据。”
“使 View 依赖于 Model,并且 Model 在发生改变的时候发送适当的信息给它的依赖者。”
可以用下面这个图做个总结:
模型应该代表着视图当前的状态,可以是加载、成功,或者一个失败的状态。然后视图需要根据当前的状态去渲染 UI。
代码
假设我们需要在应用中展示一个电影列表。我们可以用下面这个类来表示状态:
/**
- Represents the state to render the UI in MovieListFragment.
- @param isLoading if true we have to show a progress bar, else hide the progress bar.
- @param movies this list will be submited into recyclerview adapter.
- @param error OneTimeEvent that wraps a failure object for display a Toast, Snackbar, etc only once.
*/
data class MovieListUiState(
val