静态代理设计模式-实现接口隔离

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

Demo地址:
https://github.com/cWX411904/ProxyDesignDemo

上一篇下一篇

猜你喜欢

热点阅读