0%

11-Retrofit设计模式

一、策略模式

都是基于同一个目的,采用不同的方式去实现。

比如: 想去西藏旅游,可以骑自行车、坐火车、坐飞机,这是不同的策略,最终都是去西藏旅游。

所以,Retrofit 中生成 call 采用 Adapter 的策略方式,这样就能适配各种情况,比如有人采用 RXJava ,这样就能设计自己Adapter ,返回的 call 不是 Okhttp 里面的 Call ,这样,避免太过于僵化。

1.1 设计模式

设计模式怎么学习:

  1. 什么是设计模式

  2. 分析源码采用,为什么用,有什么好处

  3. 思考自己的项目,写对应的代码

二、动态代理

为什么我使用 Retrofit 的时候,只需要定义一个 接口,然后就能直接使用这个接口了,接口也不能创建对象啊。其实就是动态代理的设计模式实现的。来看看他们这个的使用方法:

1
GitHubService service = retrofit.create(GitHubService.class);

使用动态代理,虚拟机就会自动生成一个类,实现了这个接口的一个类。

静态代理相当于经纪人,可以代理特定的人;动态代理相当于经济公司,动态生成代理人,能够适应各种各样的被代理人需求,拍电影的、唱歌的、跳舞的都能代理,因为是动态生成的。

三、适配器设计模式

适配器的缺点:过多的适配器容易增加阅读的复杂度。

谢谢你的鼓励