MVVM模式

728 阅读1分钟

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