美文网首页
静态代理设计模式-实现接口隔离

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

作者: Laughing_G | 来源:发表于2019-10-04 15:26 被阅读0次

    一、框架发生改动该如何重构?

    旧的设计模式:


    旧的设计模式图

    新的架构设计图:


    改造后的设计图

    二、静态代理手写实现:

    步骤一:网络框架公有的请求接口(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

    相关文章

      网友评论

          本文标题:静态代理设计模式-实现接口隔离

          本文链接:https://www.haomeiwen.com/subject/asyqyctx.html