Kotlin 类委托(by) 解构HttpUtil

在android 开发中,我们都会用到Http请求框架有很多,偶尔会更新框架,如从volley替换成okhttp,如果没有做好封装,替换的时候需要修改很多地方。

下面提供一个封装的思路,做一个httpUtil,当需要替换请求框架,我们只需要重写RequestImpl,而不需要修改很多地方。

1.准备一个接口类

public interface IRequest {
    <T> void excute(Request request, Class<T> cls,IRequestCallback<T> callback);
    void cancelTarget(String cls);
}

2.实现IRequest接口

class RequestImpl : IRequest {

    override fun <T> excute(request: Request, cls:Class<T>,callback: IRequestCallback<T>)             {
    }
    override fun cancelTarget(cls:String){
    }
}

3.将HttpUtil中所有的实现都委托给RequestImpl对象,这个类本身就不需要去实现IRequest接口中的方法

class HttpUtil private constructor() :IRequest by RequestImpl() {

    companion object {
        @JvmStatic
        val instance:HttpUtil by lazy { HttpUtil() }
    }
}

4.使用非常简单

 Request mRequest=new Request();
        mRequest.setMUrl(SELECT_ADVERT_URL);
        mRequest.setMTarget(HttpActivity.class.getName());
        mRequest.setMParams(map);
         HttpUtil.getInstance().excute(mRequest, String.class,new IRequestCallback<String>() {
            @Override
            public void onSuccess(String response) {

            }

            @Override
            public void onFailed(String msg) {
            }

            @Override
            public void onNotNetwork() {

            }
        });

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值