MVC架构
-
M:model:负责网络请求,数据库操作等耗时操作
-
V:view:具体展示数据的布局,控件
-
C:Controler:Activity、Fragment等:负责从用户的操作中获取数据,业务处理逻辑,将数据交给model,将返回的结果交给view显示
-
mvc将数据的处理操作从Activity中抽离,但是Activity和view仍然没有很好的解耦,业务操作仍然和数据展示聚合在一起
-
view传递事件给controler,controler将数据传递给model,mode将数据返回展示到view上面
MVP架构
-
M:model:和上面的model一样的作用
-
V:view:指Activity、Fragment等,只负责数据获取,数据展示,不包含业务逻辑,通过实现一个自定义的接口,接口中定义获取数据,数据展示的方法
-
P:presenter:作为M和V的中介,M和V不直接沟通,需要通过P,因此P保留M和V的实例。
-
当应用捕获到用户的事件后,view获取数据,然后调用P的对应方法让presenter去处理数据。而实际上P收到V的请求后让M去处理数据,并且在P中实现回调方法,让M执行,回调的结果只有P知道,P按照回调的返回结果去调用V的数据展示的方法。因此做到了V只负责数据获取和展示,P处理业务逻辑,而M负责用户数据的处理.