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

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

作者: 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

相关文章

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

    一、框架发生改动该如何重构? 旧的设计模式:旧的设计模式图新的架构设计图:改造后的设计图 二、静态代理手写实现: ...

  • javaweb入门学习之代理模式(03)

    设计模式之代理模式 一. 概述 1.1 静态代理的实现 创建 接口类 IUserDao.java 目标对象类Use...

  • java的3种代理模式

    1.静态代理 静态代理是由代理类使用目标接口的实现类的引用实现的一种代理模式,比如新建目标接口IUserDao...

  • 带你初识Java的代理模式

    Spring AOP是基于动态代理设计模式实现的,相对的就有静态代理 动态代理和静态代理 静态代理 对于静态代理,...

  • 代理模式

    代理模式主要分为:静态代理,动态代理(JDK代理,接口代理)和Cglib代理(在内存中动态创建对象,不需要实现接口...

  • Java设计模式:代理模式

    Java设计模式——代理模式 代理模式主要分为接口,委托类,代理类 接口:规定具体方法委托类:实现接口,完成具体的...

  • 说说Java代理模式

    在平时写代码时,经常会用到各种设计模式,其中一种就是代理模式,代理实现可以分为静态代理和动态代理。 静态代理 静态...

  • Java动态代理瞎想

    代理模式分为动态代理和静态代理 静态代理: 定义一个人类的接口:Person 实现类:Student 代理类:St...

  • Spring框架学习二(AOP核心知识)

    3.1. 代理模式 3.1.1. 静态代理 静态代理角色分析 抽象角色 : 一般使用接口或者抽象类来实现 真实角色...

  • Spring学习(五)AOP

    SpringAop使用到了了动态代理模式(有关设计模式见设计模式章节)。JDK动态代理代理的目标类必须要实现接口。...

网友评论

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

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