关于Android程序的构架, 当前最流行的模式即为MVP模式, Google官方提供了Sample代码来展示这种模式的用法.
Android在如何组织和构架一个app方面提供了很大的灵活性, 但是同时这种自由也可能会导致app在测试, 维护, 扩展方面变得困难.
Android Architecture Blueprints展示了可能的解决方案. 在这个项目里, 我们用各种不同的构架概念和工具实现了同一个应用(To Do App). 主要的关注点在于代码结构, 构架, 测试和维护性.
但是请记住, 用这些模式构架app的方式有很多种, 要根据你的需要, 不要把这些当做绝对的典范.
MVP跟MVC很相像,我上篇文章列出了很多种MVC的设计图,所以根据MVC的发展来看,我们把MVP当成MVC来看也不为过,因为MVP也是三层,唯一的差别是Model和View之间不进行通讯,都是通过Presenter完成, Presenter主要作为View和model交互的一个纽带 扮演 “主持交互”的角色。处理交互逻辑。
前面介绍MVC的时候提到了算是致命缺点吧,在android中由于activity(god object)的存在,Controller和View很难做到完全解耦。但在MVP中就可以很好的解决这个问题 。
先说Model: 它是一个负责管理数据的接口。模型的职责包括使用API、缓存数据、管理数据库等。该模型也可以是一个接口,与其他模块负责这些职责的沟通。例如,如果您使用的是存储库模式,则该模型可能是一个存储库。如果您使用的是干净的建筑,相反,该模型可以关联。(翻译过来略显生硬 简而言之 Model层是数据访问层,如数据库API或远程服务器API)
Presenter:大家可以看到Model和View是完全没有交互的。那么 Presenter则担当Model与View之间的中间人。你所有的业务逻辑都属于它。Presenter负责查询模型和更新视图,响应用户交互更新模型。
其实MVP就是MVC延伸出来,同样是划分三层,不过MVP的Presenter让Activity更加专注于处理页面显示。这样做的好处就是:让Activity只做UI的处理,数据处理和业务逻辑全丢给Presenter来完成。但是有个缺点就是我们要写很多的接口类,增加代码量。
结构图。 接下来就一步步教你用:1、首先把结构包分好,方便理清思路2、定义Model层的接口IModel/** * Model层接口---实现该接口的类负责实际的获取数据操作,如数据库读取、网络加载...
中的 Presenter 是 “中间人”角色,它的功能是在 Model–View–Presenter 三者中起到连接和协作的作用。程序中的大部分的逻辑都应该在 Presenter 中实现。
,MVVM,简单介绍下其余两种MVCM(Model)是数据模型,或者数据处理,V(View)是视图控件,C(controller)是逻辑控制类,MVC是以前常用或者老式的项目用的比较多,优势和缺陷都相当明显,感觉并会没有彻底做到VC分离的效果优势:除了model是独立的,V和C在Activity中体现最为明显,Activity即作为V......

