mvc:model:业务逻辑层,controller:交互层(activity来控制),view:视图层
当需要请求数据时,view通知controller,controller调用model进行业务逻辑请求,请求完成之后,model将数据返回给view
优点:将业务逻辑和视图很好的解耦
缺点:activity中既是controller又是view,导致activity臃肿
mvp:model,presenter,view
当需要请求数据时,view通知presenter,presenter调用model进行业务逻辑请求,请求完成之后,model将数据返回给presenter,
presenter返回给view
优点:彻底实现了逻辑业务与试图分离,activity完全只充当view,不会造成activity臃肿
缺点:当业务很多时,会造成接口文件过多问题
mvvm:model,viewmodel,view
跟mvp类似,只是当数据返回给viewmodel时会及时反馈给view,因为是双向绑定的
具体是通过databinding实现的双向绑定