MVC与MVP

it2023-06-02  64

MVC: View:布局的xml文件,或者纯Java写的布局,可以把页面显示的逻辑直接放在View中。 Model:数据处理层,可以直接和View进行交互。 Controller:把特定的功能逻辑抽离出来,作为控制层,保证View层和Model层的功能单一性,便于维护。

MVP: View:Activity作为显示层。 Presenter:逻辑层,从Activity中抽离出功能逻辑,简化Activity的代码。 Model:数据处理层,主要负责网络请求,本地数据加载等操作,进一步简化Activity的代码。

MVC和MVP的不同点: 1、Presenter与Controller都扮演了逻辑层的角色,但是Presenter层的功能相对更复杂,因为他负责和View的双向交互,Controller只是单向的中介。因为Presenter是从View层抽离出来的,通常和View是一对一的关系,而Controller是面向业务的,往往是单例模式或者提供静态方法。 2、MVP中View和Model是不能进行通信的,虽然加重了P层的负担,但是有利于维护View层和Model层,如果条件允许,我们还可以对Presenter进一步拆分,来弥补Presenter负担过重的问题。 3、MVC中View和Model层可以直接交互,虽然方便了两者之间的交互,但是耦合性相对较高

最新回复(0)