仿github开源项目之-妹知

GitHub时空传送:https://github.com/DanteAndroid/Knowledge

架构模式
这个项目的价格模式采用的mvp模式

我先介绍一下我对mvc和mvp的理解

这张是标准的mvc模式(GUI下面的mvc)

这是我对Android中都mvc模式的理解,网上的都是基于标准的Mvc模式,对Android中的mvc的概念总是讲的含糊不清。在我看来这是一个mvc的变种

从上面图中,可以看出作为Controller的Activity承担的职责不仅仅是单纯的controller,还肩负了view和model的中间者的责任。所以在实际开发过程中Activity的代码非常的臃肿。所以有些人就开始想对现有的模式进行进一步优化。

那我们看一下mvp的职责关系图:

结合我自己理解的android of mvc图,可以很快的做出对应关系。因为原来的mvc模式中c承担了太多的责任,需要进一步的进行责任分离,而我们发现xml作为的view无法进行任何逻辑操作,而能够实际操作view的对象 只有作为controller的activity。所以我们想能不能在分离出一个与contoller类似的对象Presenter作为与Model进行沟通的桥梁,而activity和xml则承担起了View的责任,而分离出的controller变种Presenter承担起来与View进行沟通的职责。因为这个Presenter作为view和Model的中间者与二者进行双向沟通

理解了mvp的基本概念之后,我们来看看mvp的基本组成结构:

仿github开源项目之-妹知_第1张图片

 

如何项目结构复杂一点,上面的组成部分都是以接口的形式出现。

 

从代码中对应mvp结构的的部分
了解之后,任何抽象都是从具体衍生出来的。所以我们先不管其他的包的具体含义。
先充程序的入口MainActivity进行分析:
0.演示主页的整体结构
1.MainActivity的继承关系
2.有:父类的流程、抽象方法
3.Main自己的大致流程-概括
4.详细分析主页的结构
5.按照结构一步一步实现细节

你可能感兴趣的:(仿github开源项目之-妹知)