Retrofit Create方法----动态代理。

参考:http://www.jianshu.com/p/030aeef33311

一、为什么Retrofit2.0要用接口的形式传入访问的API。

例如:

GitService api=RetrofitClient.create(GitService .class);

1.这里的GitService 是负责定义访问的接口的一个接口类,通过create方法为GitService创建了一个实现类,这是因为create方法中采用动态代理的方式。

Retrofit Create方法----动态代理。_第1张图片
Paste_Image.png

2.Proxy.newInstance负责给接口对象创建具体的实现类
3.所以通过动态代理创建的对象,调用的方法都会被InvocationHandler劫持,在invoke中对方法的结果做处理。

Retrofit Create方法----动态代理。_第2张图片
Paste_Image.png

你可能感兴趣的:(Retrofit Create方法----动态代理。)