1.MVP架构说明
- View层进行数据展示,提供友好的交互界面;
- Presenter作为View层和Model层的桥梁,从Model层获取数据,并且进行业务逻辑处理;
- Model层,不仅是数据模型层,而且进行数据的存储提取操作,和网络的请求操作;
2.MVP和MVC的区别
Android里面的activity,如果使用MVC架构,代表Activity需要同时处理View层和Controller层,进行页面展示和业务逻辑处理。显然会出现大量的冗余和冗长的代码。
因此后面Android演化出MVP架构。
3.MVP代码官网架构DEMO目录结构
- demo根据功能进行划分分为,一共四个模块,增加编辑任务(addedittask),统计(statistics),查看任务详细(taskdetail),任务列表(tasks)
- AddEditTaskActivity,进行Fragment的加载,和AddEditTaskPresenter的加载,并且把Fragment添加到Presenter层去。
- AddEditTaskContract,里面是View层和Presenter层需要实现的功能接口,主要是方便阅读。
- AddEditTaskFragment,里面是View层,实现Fragment接口和Contract里面的功能接口,是系统的View层,进行交互和界面的处理。
- AddEditTaskPresenter实现BasePresenter,和Contract里面的功能接口。Presenter中包含了Model层TasksDataSource的对象mTasksRepository和View层AddEditTaskContract.View的对象mAddTaskView。于是整个业务逻辑的处理就担负在Presenter的身上。
- data是Model负责数据模型和数据的存取。
- util工具类
- BasePresenter和BaseView是所有Presenter和View层都要实现的接口;