每次看MVC架构的项目时,都会在比较臃肿的Activity、Fragment里面阅读,对一个界面的逻辑理解并不是那么的清晰。当然,Android的MVC架构,很多都不是特别的清晰,因为Activity作为控制器,却做了很多视图的处理,或者把Activity理解成为视图,却拥有着大量的控制器逻辑。MVP架构会在这个MVC基础上锦上添花。虽然会添加很多接口类,但清晰度上面提高了,后面通过泛型应该也可以简约更多的代码。
Android官方MVP架构:
https://github.com/googlesamples/android-architecture
学习后分析了一下,先上图
image
Activity作为MVP的主控制,初始化Precenter(P)、Fragment(V)、TasksRepository(M),View层响应UI事件,并通过Precenter层去获取数据,Precenter会通过调用Model层去获取内存中缓存的、本地数据库的、网络服务器的数据,最终通过回调方法响应数据到View层显示。
在看看官网demo的目录结构:
image从契约类Contract可以看出,Precenter跟View层的接口都比较清晰的查看,而Model层则是通过实现TasksDataSource接口,达到数据获取、网络数据获取、本地数据获取,都是实现相同的接口。因此三者具体的交互应该是这样的
image
网友评论