面试系列——Retrofit 框架分析使用总结

Retrofit是一个优雅的网络请求库,它利用Builder模式构造实例,通过外观模式简化接口,采用动态代理实现网络接口到实现类的转换。内部集成OkHttp,支持多种设计模式如适配器和工厂模式。改变BaseUrl有多种方案,包括创建多个实例、使用拦截器或利用Path参数。关键词涉及构造者模式、动态代理、适配器模式、工厂模式和策略模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Retrofit 框架分析

介绍

利用各种精巧的设计模式 ,以一种优雅的方式构造网络请求,内部还是利用OkHttp发送网络请求,而不是重写了一个套网络框架。

请求过程

定义获取Retrofit 实例 ,创建网络接口实例,发送网络请求,获取返回结果。

各种设计模式

构造者模式

Retrofit 实例创建利用Builder模式,简化构建方法。

外观模式

对外只提供Retrofit 实例 避免对系统的直接访问。

代理模式

网络接口到实现类的利用到动态代理,简化调用。

适配器模式

CallAdapter adapt 的实现 提供不同的Adapter实现来转化Call 请求。

工厂模式

CallAdapter.Fatory 对外屏蔽获取CallAdapter实现细节

策略模式

不同平台Platform 返回不同的callbackExecutor。

如何改变BaseUrl

1. 方案一 多Retrofit 实例

适用于baseUrl 不是很多,注意 可以通过 Retrofit 构造器Builder client(OkHttpClient ) 共享OkHttp 实例,否则会创建多个OkHttpClient ,不推荐使用。

2. 方案二 拦截器

拦截器 中重新构造请求。

3. 方案三 利用Path 参数覆写路径

静态方案,接口太多时,每个接口都要覆写path 不够优雅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值