Retrofit源码学习六:框架中的设计模式

Retrofit源码学习五:Retrofit中同步、异步请求解析

Retrofit源码学习六:框架中的设计模式

1、构建者模式

=======

作用:将复杂对象的构建和表示相分离。

Retrofit retrofit = new Retrofit.Builder()

.baseUrl(“http://www.baidu.com/”)//设置网络请求的URL地址

.addConverterFactory(GsonConverterFactory.create())//设置数据解析器

.addCallAdapterFactory(RxJavaCallAdapterFactory.create())//支持RxJava平台

.build();

除了Retrofit,还有ServiceMethod也用到了构建者模式。

2、工厂模式

======

第一个例子,工厂模式,就是CallAdapter中的Factory类

public interface CallAdapter {

Type responseType();

T adapt(Call call);

abstract class Factory {

public abstract CallAdapter<?> get(Type returnType, Annotation[] annotations,

Retrofit retrofit);

protected static Type getParameterUpperBound(int index, ParameterizedType type) {

return Utils.getParameterUpperBound(index, type);

}

protected static Class<?> getRawType(Type type) {

return Utils.getRawType(type);

}

}

}

第二个例子,静态工厂方法,就是Platform类

class Platform {

private static final Platform PLATFORM = findPlatform();

static Platform get() {

return PLATFORM;

}

//静态工厂方法

private static Platform findPlatform() {

try {

Class.forName(“android.os.Build”);

if (Build.VERSION.SDK_INT != 0) {

return new Android();

}

} catch (ClassNotFoundException ignored) {

}

try {

Class.forName(“java.util.Optional”);

return new Java8();

} catch (ClassNotFoundException ignored) {

}

try {

Class.forName(“org.robovm.apple.foundation.NSObject”);

return new IOS();

} catch (ClassNotFoundException ignored) {

}

最后

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。
(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

image

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 30
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值