Android Retrofit里的设计模式

一、Retrofit三步走

1、创建Bean或者Model接收数据返回

2、创建一个描述网络请求的接口

3、创建Retrofit实例

4、用Retrofit实例创建网络请求接口实例

5、调用接口实例的getCall获取call

6、调用Call请求方法

二、Retrofit

Retrofit就是一个定义接口然后对OKHttp的一个封装,事实上网络请求还是在OKHttp里进行。利用注解和参数利用动态代理来替使用者生成网络请求的Request和Call,来完成网络请求的一个框架。

三、Retrofit的设计模式(重点)

1、构建者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

使用Builder内部类,通过链式调用来完成初始化。让每一个配置变得清晰。

2、工厂方法

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。CallAdapter的get方法使用工厂模式实现了不同平台的调用。例如RxJavaCallAdapter的get就返回了Observer。

3、外观模式

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

Retrofit里面封装了很多类,其实使用者并不需要知道具体是什么,只要通过Retrofit来和他们进行交互就行了。

4、策略模式

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

其实就是将我们的业务逻辑分成不同的策略,使用时可以进行替换即可。

CallAdapter其实就是一个策略,具体实现的策略的方法由子类实现。例如RxJavaCallAdapter就是一种策略,要替换成别的Adapter也可以,这就是策略模式。

5、适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

适配器模式可以说是一种中间件,将不同的平台上的网络请求封装成一类,OKHttpCall就是这样做的。

6、观察者模式

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。

CallBack作为观察者观察OKHttpCall,根据执行的不同做出反应。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章