Android经验和架构Android知识Android进阶之路

关于clean架构的思考

2017-04-03  本文已影响138人  linheimx

MVP不好吗?

  1. V:界面相关(界面的展示,用户操作的触发)
  2. M:数据相关(基本数据的定义,数据的处理:增删该查)
  3. P:中介(是在M和V之间的中间商。拿到M给的数据,再小小的处理下,最后交给V)

从以上可以看出,mvp的逻辑还是很清楚的嘛!有哪里可以做的更好呢?

从P层扮演的中间商下手:
比如这样的一个情况:
M层:从网络获取到了一堆新闻数据
P层:将M层获取到的数据过滤一下(过滤掉不健康的信息)
V层:显示P层过滤后的信息

我们可以将P层的将M层获取到的数据过滤一下(过滤掉不健康的信息)
这个逻辑抽取出来,做成一个单独的模块!相当于这个商业逻辑独立了,针对这个逻辑,我们可以肆意的虐待他,比如测试(因为是个单独的模块了,所有非常方便测试)!

将商业逻辑抽象

抽象:

抽象说的太玄乎了,其实就是考虑将商业逻辑封装成类!
比如对人的相关信息可以封装成Person,在clean架构里,我们将商业逻辑封装成UseCase

所谓商业逻辑其实就是:

针对你给的数据--->处理--->处理完成后的数据交出来

综上:我们的UseCase就是如下啦:

UseCase

针对某个功能,你对P的分解,可以写出好几个usecase啦:


限于篇幅,针对具体的UseCase的实现,我就不细说了,很简单的,你们细看。
这个例子的地址:
https://github.com/android10/Android-CleanArchitecture

其它

你现在有一堆商业逻辑啦,一般商业逻辑的处理在后台执行,而处理后的结果需要切换到主线程。(Ok,我们有RxJava,很方便的来完成这个)

现在,我们用UseCaseHandler来解决这个问题:(大同小易,可看可不看)
代码我就补贴了,代码地址在:
https://github.com/android10/Android-CleanArchitecture

上一篇 下一篇

猜你喜欢

热点阅读