关于clean架构的思考

作者: linheimx | 来源:发表于2017-04-03 15:39 被阅读138次

    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

    相关文章

      网友评论

      本文标题:关于clean架构的思考

      本文链接:https://www.haomeiwen.com/subject/uqcoottx.html