Android 架构之隔离层设计(实现一键切换主流网络框架) 上

前言

本篇文章主要讲解 Android 比较常用的网络框架封装,以及实现一句代码随意切换主流网络框架。读者也可根据该本章思路实现其他效果,比如说,随意切换权限请求框架等。

特点

按这思路写,代码重构非常简单!

什么是隔离层设计?

先来个图解释下 隔离层设计图解

我们就拿现实生活举例。

  • 将买房的人(客户)看成是我们写的APP;

  • 将有房的人(业主)看成是我们接触的主流网络框架(XUtils、OkHttp、OkGo....);

  • 将房地产公司(比如说链家)看成是客户(我们app)所需要的服务(post、get网络请求等);

  • 将业务员(中介)看成是客户的推荐者;

那么

App想要实现网络请求,就要先去找到房产公司的业务员,业务员就会在房产公司里拿到已经入驻的网络框架列表(业主列表),提供给用户选择,用户不满意这个房子(网络框架),就可以随时换下一个。而房产公司以及业务员就是本章所谓的隔离层

思路理解清楚了,接下来就开始实战操作了

第一步,我们先创建房产公司 IHttpProcessor

/**
 * 房产公司
 */
public interface IHttpProcessor {
    //有卖房的能力
    //网络访问的能力
    void post(String url, Map<String,Object> params, ICallback callback);
    void get(String url, Map<String,Object> params,ICallback callback);
}
复制代码

交易是否成功的回调 ICallback

/**
 * 顶层的回调接口
 */
public interface ICallback {
    void onSuccess(String result);
    void onFailure(String e);
}
复制代码

以及 ICallback 扩展,HttpCallback


/**
 * 回调接口的一种实现
 */
public abstract class HttpCallback<Result> implements ICallback{
    @Override
    public void onSuccess(String result) {
        //网络上回来的结果都 在result上
        //1.得到调用者用什么样的javaBean来接收数据
        Class<?> clz=analysisClassInfo(this);
        //2.把String转成javaBean对象交给用户
        Gson gson=new Gson();
        Result objResult=(Result)gson.fromJson(result,clz);
        //3.把结果交给用户
        onSuccess(objResult);
    }

    public abstract void onSuccess(Result objResult);

    /**
     * 通过该功能得到输入参数的实际类型
     */
    private Class<?> analysisClassInfo(Object object){
        //
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值