MVVM :
MVVM定义MVVM是Model-View-ViewModel的简写。是一个软件架构设计模式,由微软 WPF 和 Silverlight 的架构师 Ken Cooper 和 Ted Peters 开发,是一种简化用户界面的事件驱动编程方式。由 John Gossman(同样也是 WPF 和 Silverlight 的架构师)于2005年在他的博客上发表。即模型-视图-视图模型。
MVVM应该改成M-VM-V会更容易直观地理解。View-Model作为胶水层,把视图 View和数据模型Model粘合在一起。
MVVM不是一个纯前端的架构模式。它适用于所有的包含GUI(Graphical User Interface 图形用户接口)的应用程序中(包含后端部分)。
MVVM其实可以细分为M-C-VM-V的四层架构。
对于以上M-C-VM-V层的理解:
l M(odel)层:定义数据结构,建立应用的抽象模型。
登陆页M层示例:
class LoginActivity : BaseActivity() {
private var viewModel: LoginViewModel? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = DataBindingUtil.setContentView<ActivityLoginBinding>(this, R.layout.activity_login)
viewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
binding.viewModel = viewModel
viewModel?.status?.observe(this, Observer<StatusBean> { t ->
when (t?.status) {
LoginViewModel.go_main -> MainActivity.start(this@LoginActivity)
}
})
}
}
class LoginActivity