MVP框架思考
2018-06-28 本文已影响0人
石器时代小古董
参考文章 https://www.jianshu.com/writer#/notebooks/3267733/notes/30072239
一、MVP和MVC区别
1.在MVC中View视图的操作(请求更改数据)首先会触发Control层的业务,Control层会调用model层数据修改方法,model层修改数据会后修改view层。这样的缺点是model层会有View的内容,以及一些业务内容(Control),并且MVC没有定义接口,就导致业务代码重用很困难。比如:View是Activity,它的业务如果想让Fragment用,就比较困难。因为Mode,Control层中都含有了View的引用,且View引用是一个Activity对象
image.png
2.mvp框架中view和presenter双向通信,presenter和model双向通信,当presenter对象充当了桥梁,含有view和model的引用。presenter如果内部含有的是一个view的接口,那么这个presneter可以拿到任何实现了view接口的View(Activity,Fragment)上。
image.png