解耦的常用套路

1.png

通常我们在网上找的
第三方开源lib(好比高层模块),我们自己实现的部分好比底层模块,我们通过gradler的方式引入,但是出现扩展问题时,我们需要download下来源码进行修改。
当我们写项目的时候,改变依赖,低层实现类抽象出来,放到高层类里面。就好比GpsTracker,我们不能在高层类里面去实例一个BaiduTracker(具体实现),我们抽象出来一个LocationTracker,让其成为高层的成员变量,通过工厂模式实例化。

2.png
  • 高层和低层分别new出来,通过set的方法依赖
  • 通过Helper实现低层,高层依赖Helper


    3.PNG

    为什么会有接口回调?
    如果没有接口回调,高层驱动低层,低层反馈给高层,二者相互引用,互相持有,如果低层想回调高层的方法,即对象.方法,低层调用高层的方法,不应该允许这种行为,因为高层是concroller,控制的模块流程,不应该调用高层的东西,这时候接口就来了。
    高层抽象,低层实现,低层回调接口,高层实现接口。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,705评论 25 709
  • 深入理解DIP、IoC、DI以及IoC容器 前言 对于大部分小菜来说,当听到大牛们高谈DIP、IoC、DI以及Io...
    meng_philip123阅读 884评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 最近怀旧心突起,在B站翻到了《情深深雨蒙蒙》,本来是奔着发现表情包的目的去的,看着看着才发现,这部童年神剧,三观居...
    黎饭饭阅读 795评论 0 3
  • 简安是万千少女中最平凡的一只。简安的家庭是社会元素构成中极普通的一个。 时而淅淅沥沥,时而大雨倾盆...
    之知味阅读 322评论 0 0