mvc
model view controller
用户 ->操控界面 ->业务逻辑 ->更新数据 ->更新view
特点:单向通信,view直接访问model
总结:1. view依赖model,view带有业务逻辑,更改view相对困难 2. Controller会变得很复杂
mvp
model view Presenter
用户 ->操控view ->presenter ->更新数据 ->presenter->更新view
特点:双向通信,view和model完全分离,所有逻辑交互都在presenter(view可能也会存在业务逻辑)
总结:解决了mvc的第一个缺点,第二个缺点仍没有解决
mvvm
model view viewmodel
用户 ->viewViewModel ->更新Model ->通知ViewModel发生数据变化 ->viewModel更新View
特点:双向绑定 view和Model的变动自动反应在ViewModel,反之亦然