android_biz_refactor

利用ARouter进行业务架构解耦

github源码地址

本Demo中实现了以下功能:

开发了一个Demo,用于多模块业务的开发以及数据通讯和传递,通过ARouter,可以实现模块间解藕,独立。

  • 增加了 shopcartMoudle和productMoudle以及openserviceMoudle三个模块,详见下图

增加了三个模块
然后通过App中的点击事件路由到产品和购物车页面。
App中的路由模块

  • openServiceMoudle 主要用于模块间数据传递,比如:购物车要获取产品的的一些详细信息,但又不能直接依赖产品模块。
    Service Moudle
  • shopcartMoudle 功能:
    • 跨Moudle调用了ProductMoudle中的ProductService,获得了相应的产品信息
    • 跨Moudle调用了ProductMoudle中的ProductFragment,并传递相应的参数,显示相应的Fragment界面。
      购物车模块的功能
  • productMoudle功能
    • 通过ARouter调起 购物车模块页面功能。
      产品模块功能
      设计思想见下图:
      android_biz_refactor

ARouter核心实现

  • 利用运行时注解生成的路径和具体Class的绑定关系。放到ARouter的索引中。
    注解生成的类
  • 然后执行执行跳转时,选从索引中查找实现类,找到实现类后,再执行navigation操作。
    跳转类
  • 被跳转的类,根据Type的不同,执行的操作也不同,如activity的话,就直接用startActivity,如果是Fragment,直接newInstance(),如果是Service相关,直接通过获取就可以了。
    根据类型不同,去实现

所以总体而言,ARouter 建立了路径对应的实体类的一个映射关系,在具体调用的时,根据不同的类型,执行了不同的Action。

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注