Android常用开源库所使用的设计模式有哪些?

  1. OkHttp

1)构造者模式。 构建不同的Request对象。

2)工厂模式 。 通过OkHttpClient生产出产品RealCall。

3)观察者模式。OkHttp 的某些组件可能使用观察者模式来监听和响应事件,如连接状态的变化或请求的完成。

4)单例模式。连接池(ConnectionPool)或分发器(Dispatcher)设计为单例。

5)责任链模式。 将不同功能的拦截器形成一个链。

6)享元模式 。 通过线程池、连接池共享对象。

7)外观模式。 通过OkHttpClient这个外观去实现内部各种功能。

  1. Retrofit
  1. 动态代理。Retrofit利用Java的动态代理技术为接口创建代理实现类。这使得用户可以直接调用定义的接口方法,而Retrofit会在运行时将这些调用转换为HTTP请求。

  2. 门面(外观)模式。暴露简洁的API。

  3. 适配器模式。Retrofit中的CallAdapter和Converter.Factory都是适配器模式的体现。CallAdapter负责将Retrofit的Call对象适配为不同的类型,如RxJava的Observable或Java的Future。Converter.Factory则负责将HTTP响应体适配为Java对象。

4)建造者模式。用户可以链式地设置Retrofit的各种配置参数,如baseUrl、converter、callAdapter等。

5)工厂方法模式。CallAdapter.Factory和Converter.Factory都是抽象工厂,可以基于它们创建具体实现类。

  1. RxJava

1)观察者模式。在RxJava中,Observable(被观察者)发出事件或数据项,而Observer(观察者)或Subscriber(订阅者)则订阅这些事件,并对它们进行响应。

2)迭代器模式。Observable发出的事件可以被连续地处理,并且可以使用操作符(如map、filter等)来转换和处理这些事件流。

3)策略模式。每个操作符都实现了某种特定的数据处理策略,如转换、过滤、合并等。

  1. Glide

1)单例模式

2)工厂模式。Glide 中的 ModelLoaderFactory、DiskCache.Factory 和 TransitionFactory 等都是工厂模式的体现。

3)构建者模式。允许用户通过链式调用配置多个参数,从而创建一个完整的 Glide 请求对象。

4)原型模式

5)观察者模式

6)责任链模式

7)策略模式

8)装饰模式

9)组合模式

10)享元模式

5.Gson

1)单例模式

2)代理模式

3)工厂模式。Gson在创建特定类型的对象时,如解析器和序列化器时,使用工厂模式。

6.GreenDao

1)单例模式

2)工厂模式。GreenDao在生成数据库访问对象(DAO)时,采用工厂模式。

3)模版方式模式


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关推荐
艾伦~耶格尔2 小时前
Spring Boot 三层架构开发模式入门
java·spring boot·后端·架构·三层架构
小雨cc5566ru3 小时前
uniapp+Android面向网络学习的时间管理工具软件 微信小程序
android·微信小程序·uni-app
bianshaopeng4 小时前
android 原生加载pdf
android·pdf
hhzz4 小时前
Linux Shell编程快速入门以及案例(Linux一键批量启动、停止、重启Jar包Shell脚本)
android·linux·jar
Neituijunsir5 小时前
2024.09.22 校招 实习 内推 面经
大数据·人工智能·算法·面试·自动驾驶·汽车·求职招聘
火红的小辣椒5 小时前
XSS基础
android·web安全
_.Switch6 小时前
Python机器学习框架介绍和入门案例:Scikit-learn、TensorFlow与Keras、PyTorch
python·机器学习·架构·tensorflow·keras·scikit-learn
小飞猪Jay6 小时前
面试速通宝典——10
linux·服务器·c++·面试
猿java7 小时前
Cookie和Session的区别
java·后端·面试
勿问东西7 小时前
【Android】设备操作
android