Android数据层解析层解耦问题
2015-11-12 17:15
579 查看
前言
Android数据层基本都跟业务挂钩,如果不把数据层提出来,哪架构无法做到完全独立,数据层的解耦是非常重要,所以就要做到模块完全独立,可扩展。
先看看JsonPaserFactory的实现,前面有讲过,不做详细说明:
BaseEntity entity = (BaseEntity) BaseApplication.httpRes.getPaser(type);
里面调用到application中的全局解析配置类BaseHttpRes类,此类是一个抽象类,具体代码如下:
public abstract class BaseHttpRes { /** * 根据reqType获取URL * @param reqType * @return */ public abstract String getUrl(int reqType); /** * 请求地址需要格式化的 * */ public String getUrl(int mId, String format) { switch (mId) { // case REQ_METHOD_GET_MORE_REPLY: // return String.format(REQ_URL_GET_REPLY, format); default: return format + getUrl(mId); } } /** * 根据reqType获取返回解析对象 * @param type * @return */ public abstract Object getPaser(int type); }
BaseApplication实现如下:
public abstract class BaseApplication extends Application implements UncaughtExceptionHandler { public BaseHttpRes httpRes; /** * 初始化请求常量 * * @return */ protected abstract BaseHttpRes initBaseHttpRes(); public BaseApplication() { httpRes = initBaseHttpRes(); } }
上面看到了基类编写了一个抽象方法,当子类继承时就的重写这个类,这样每个子项目就可以自由扩展实现,具体配置类就不用直接跟架构关联。
public class YingJiaApp extends BaseApplication { public AsyncHttpClientImpl asyncImpl; private final static int CWJ_HEAP_SIZE = 8* 1024* 1024 ; @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); asyncImpl = AsyncHttpClientImpl.getHupuHttpClient(); MySharedPreferencesMgr.init(this, "yingjia"); } @Override protected BaseHttpRes initBaseHttpRes() { // TODO Auto-generated method stub return YingJiaRes.getInstance(); } }
public class YingJiaRes extends BaseHttpRes { private static YingJiaRes instance; // public static String BASE_URL = "http://newapp.mobile.com/"; public static String BASE_URL = "http://api.app.com/v1/ios/"; public static String BASE1_URL = "http://api.app.com/v1/"; public static int REQ_METHOD_POST = 10000; }
相关文章推荐
- Android小记:如何自学Android
- android 获取字符串的方法
- android 获取字符串的方法
- Android中的跨进程调用技术AIDL
- Android自定义View(五)——带扫描线的View
- android service完全解析(下)
- dispatchTouchEvent以及onTouchEvent事件分发
- Android 四大组件(Activity、Service、BroadCastReceiver、ContentProvider)
- 关闭activity相关的
- 安卓开发新技能Get丨常用必备小工具汇总
- android service完全解析(上)
- Android 生成keystore的两种方式(签名文件生成方式)
- Android:小记Android开发者必知的开发资源
- Android_在Android 6.0设备上动态获取权限
- Android 的服务-Service
- Android应用程序创建热点以及自动链接Wifi,我遇到的问题以及我是怎么解决的
- Android平台简单介绍
- android创建工程的时候出现错误:;;;adjjusting android project classpath
- Android-SDK国内更新镜像及设置
- 让Android屏幕适配开发更简单-我就是传说中的Google百分比布局支持库