alibaba-ARouter(2)—ARouter IProvider 跨moudle的服务调用

##IProvider##

它首先是Arouter包下的一个类文件:


package com.alibaba.android.arouter.facade.template;

import android.content.Context;

/**
 * Provider interface, base of other interface.
 *
 * @author Alex <a href="mailto:[email protected]">Contact me.</a>
 * @version 1.0
 * @since 16/8/23 23:08
 */
public interface IProvider {
   

    /**
     * Do your init work in this method, it well be call when processor has been load.
     *
     * @param context ctx
     */
    void init(Context context);
}

看上去显得很无聊的呐。啥东东都木有的呐。

##那么这个东西究竟是个啥呢?##

我理解为它是ARouter内的一个概念,是ARouter提供的一种代表项目具体业务的编码和封装的范式,和android本身技术点无关,它是ARrouter所衍生出来的一种思想,可以理解为"业务的抽象与封装"的一种编程范式,它不是必要的,但它是重要的,它为我们在配合Arouter框架下进行业务封装时提供了一种**“优雅的姿势”**。在编码过程中,我更倾向于将其命名为IxxxService。

##一个最简单的例子##


import android.app.Activity;

import com.alibaba.android.arouter.facade.template.IProvider;
import com.chad.library.adapter.base.BaseQuickAdapter;

/**
 * Created by thinkpad on 2018/1/29.
 * 旅游服务
 */

public interface ITravelService extends IProvider{
   

    /**
     * 选择国家
     */
    void choiceCountry(Activity activity);


    /**
     * 选择城市
     */
    void choiceCity(Activity activity, BaseQuickAdapter adapter, int position);


    /**
     * 执行旅游
     */
    void doneTravle(Activity activity, BaseQuickAdapter adapter,int position,String action);
}

这样我们就定义好了一个**“旅游的服务”**,它内部包含3个业务,[选择国家],[选择城市],[去旅游]。

那么我们就来一次愉快的旅游吧##

比如这么个场景,选择了国家,然后列出该国家的城市,点击城市的时候,我们去旅行。

快拿我的(灰烬使者)代码过来

界面我就不写了,本文主要讨论思想。

1.定义业务抽象接口

public interface ITravelService extends IProvider{
   

    /**
     * 选择国家
     */
    void choiceCountry(Activity activity);


    /**
     * 选择城市
     */
    void choiceCity(Activity activity, BaseQuickAdapter adapter, int position)
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值