运用的设计模式:
1.Retrofit构建过程 建造者模式、工厂方法模式
2.创建网络请求接口实例过程 外观模式、代理模式、单例模式、策略模式、装饰模式(建造者模式)
3.生成并执行请求过程
适配器模式(代理模式、装饰模式)
创建Retrofit对象过程使用建造者模式,serviceMethodCache为核心全局变量,网络请求配置对象,存储网络请求相关的配置,如网络请求的方法、数据转换器、网络请求适配器、网络请求工厂、基地址等。
retrofit.create()使用了外观模式和代理模式创建了网络请求的接口实例。
从本质上来说,Retrofit虽然只是一个RESTful 的HTTP 网络请求框架的封装库。但是,它内部通过 大量的设计模式 封装了 OkHttp,让使用者感到它非常简洁、易懂。它内部主要是用动态代理的方式,动态将网络请求接口的注解解析成HTTP请求,最后执行请求的过程。