1、mvc、mvp、mvvm
点击看答案
mvc
特征:
- view 接收用户的输入,并且可以通知Controller 更改Model 层数据,如果没有涉及逻辑,还可以直接通知Model 更改数据。
- 需要ui变化,但是没有涉及业务数据,直接调用controller 即可(比如用户选择使用用户名/手机号登录)
- model 数据变化时,若需要修改ui,需要通过Controller 来通知更新。
在Android中存在问题:
- Activity 的职责不明,并且臃肿。Activity 除了要展示view (加载view,接收用户操作),还要承担部分逻辑处理(比如生命周期回调)
mvp
特点:
- View 层接收输入
- Presenter 处理业务逻辑,View 与 Model 之间必须经过 Presenter
优点(相对MVC):
- 避免了View、Model 直接联系,更加解耦,通过Presenter 实现两者之间的沟通
- Activity 更加简明,仅仅负责UI上的工作
mvvm
可能主要关注view 通过databinding 与 viewmodel 相互绑定。
mvc 与 mvp 的区别
- 在mvc 中 Activity 具有 view 的功能,并且兼任部分 controller 功能,而mvp 中Activity 是纯粹的view
- mvc 中view 和model 可以直接沟通(没有逻辑情况下,view直接更改model,当然,有逻辑改动的情况下经过controller),而mvp中二者沟通必须经过presenter。
以上内容参考自carson_ho的博客