MVP模式从入门到精通
来源:互联网 发布:隔音棉 知乎 编辑:程序博客网 时间:2024/06/07 14:26
首先MVP 是从经典的MVC架构演变而来,那我们是不是要先说下何为MVC模式?
系统C/S(Client/Server)三层架构模型:
1)视图层(View):一般采用XML文件对应用的界面进行描述,使用的时候可以直接引入,极为方便,可以的大大缩短开发时间,也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了非常方便的通信实现。业务逻辑层(BLL):它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。
2)控制层(Controller):Android的控制层的重任通常落在了众多的Acitvity的肩上,这句话也就暗含了不要在Acitivity中写代码,要通过Activity交割Model业务逻辑层处理。
3)模型层(Model):对数据库的操作、以及其他和数据有关的的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。
三层结构架构三层间的交互及作用如下图所示:
传统的MVC模式是很不错,我们也很熟悉,毕竟用了这么多年了。(突然想到之前去一家公司面试他问个HelloWord的Android项目是不是MVC,我说不是,他说回答错误,阿西吧!)
在Android项目上你会发现Activity的责任太重,什么东西都要放在Activity中,最终导致了Activity太过臃肿。虽然能抽的都抽出来了,但是会发现代码还是很多,试想下上千行代码还没有注释,能不晕?即使是自己写的,过些日子去看也有些晕晕的吧?
尤其代码敲完,一个月后需求又改了,从600、700行代码中找到要修改的地方也是要一点功夫的。
为了给Activity减轻压力,这时候MVP出现了!
MVP有什么好处,为什么要用MVP呢?
网上搜下一大堆MVP的各种好处,本人总结下主要有以下几点:
- 代码解耦
- 结构清晰
- 可复用
- 扩展性高
- 方便进行单元测试
- BuyBooActivity是我们的Activity
- BaseActivity是Activity的基类
- BasePresenter是Presenter的基类
- BuyBookBean是我们的bean,也就是传说中的实体类,几个成员变量,自动生成一堆get、set方法的那个类
- IBuyBookView也就是BuyBooActivity的接口
- BuyBookPresenter也就是这个Actvity的Presenter
- IBuyBookPresenter是BuyBookPresenter的接口
- BuyBookModel是这个Activity的数据层
- IBuyBookModel是BuyBookModel的接口
- BuyBookAdapter是BuyBooActivity里面ListView的适配器
- ValueCallBack,是一个通用的回调接口
设计模式六大原则(1):单一职责原则
设计模式六大原则(2):里氏替换原则
设计模式六大原则(3):依赖倒置原则
设计模式六大原则(4):接口隔离原则
设计模式六大原则(5):迪米特法则
设计模式六大原则(6):开闭原则
- MVP模式从入门到精通
- MVP模式从入门到精通
- MVP模式从入门到精通
- MVP模式从入门到精通
- MVP模式从入门到精通
- RabbitMQ从入门到精通----集群模式
- MVP从入门到...
- 从入门到精通
- 拙作《设计模式从入门到精通》出版留念
- RabbitMQ从入门到精通----编码与模式
- Java从入门到精通Chapter7_2单例模式
- Google从入门到精通
- JAVA从入门到精通
- GOOGLE从入门到精通
- 搜索引擎从入门到精通
- RMS从入门到精通
- RSS从入门到精通
- RSS从入门到精通
- Linux C编程第二章的10个问题以及解决方案
- java进阶,Spring,SpringMVC等总结
- 主成分分析(PCA)算法原理介绍
- c++中iterator迭代器和vector容器
- uva 12012
- MVP模式从入门到精通
- 枚举Enum
- POJ 3233 Matrix Power Series 笔记
- Oracle函数总结:字符函数
- Java的web
- 【02】框架学习—Hibernate第一个入门案例详解
- HDOJ 2092 整数解
- GitHub的简单使用
- JVM(二)