因为项目需要封装了其网络层,主要对其原来的模式进行改进,使用的回调的方式来进行网络的访问和返回结果的处理,还有就是在View层和网络层之间加了一个中间层,用来分配各种网络请求,这样就可以方便的调度和管理。
我就不拿原项目的代码来演示,自己写了一个demo,首先是最底层,处理最基本的Http协议,里面包含一个execute方法,用来Post或者Get获取数据,这里为了方便我只写了一个Get,可以根据具体需要进行改成Post或者其他方法:
可以看到这个execute方法的参数是String url和Map<String,String> map,这样我们就需要一个POJO来构造这些参数:
接下来是一个工厂类,这里用到了简单工厂模式,可以根据不同的参数很方便的创造出POJO的实例:
接下来是中间层,所有的网络方法都需要经过这里才能调用底层协议,在这里进行各种网络方法的调度和管理:
自己定义回调接口,一般来说就是进行Success处理和Error处理,还可以进一步抽象:
最后就是在主函数中进行调用,这里调用的是运行在子线程中的方法,只需要构造好Callback回调函数,简单
调用即可:
final NetworkPOJO request = NetworkFactory.creategao(); //构造POJO btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Network.postOnThread(request, new Callback() { @Override public void onSuccess(String json) { text.setText(json); } @Override public void onError() { text.setText("Error"); } }); } });
这样View层和底层中间就多了一个中间层,提供运行在不同线程的各种调用方法,使用时对其回调方法进行实现就可以了,最大的有点就是方便调度和管理。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-09-08 11:21:26