静态代理设计模式-实现接口隔离
2019-10-04 本文已影响0人
Laughing_G
一、框架发生改动该如何重构?
旧的设计模式:
旧的设计模式图
新的架构设计图:
改造后的设计图
二、静态代理手写实现:
步骤一:网络框架公有的请求接口(HttpRequest):
公有请求接口HttpRequest步骤二:先用AsyncHttp框架,定义一个请求类继承HttpRequest:
AsyncHttpRequest.java步骤三:用OkHttp框架,定义一个请求类继承HttpRequest:
OkHttpRequest.java步骤四:定义一个中间层HttpRequestPresenter去实现HttpRequest,同时它内部持有HttpRequest对象,用这个HttpRequest对象去实现get和post方法:
HttpRequestPresenter.java步骤五:调用者的使用:
通过init传入的对象不同,而实现不同的网络请求接口:
调用者的使用
三、延伸扩展
思考:一些优秀的网络请求框架都支持JavaBean自动转换,那么他们是怎么实现的呢?
这里用到的泛型和Gson框架,Gson框架再进行fromJson格式转换的时候,必须要传入Class的类型(比如代码中的WeatherInfo.class)或者是Type类型,然后将转换后的类型用泛型表示,最后重定向到新的onSuccess方法中:
ModelCallback.java